- 7,099
- 324
- 1,510
У мя есть obj-модель, хочу чтобы у моей сущности была такая же модель.
Попробовал следующее: зарегать эту модель для блока и отрендерить этот блок в рендере сущности.
Результат: у блока модель норм(скрин один, без текстуры), а в рендере сущности заюзать не получается(второй скрин).
Че я делаю не правильно?
Бонусный вопрос:
Есть ли способ сконвертировать obj-модель в java-модель, которая целиком кодом, через вызовы тесселятора, типо
Заранее спасибо)
Попробовал следующее: зарегать эту модель для блока и отрендерить этот блок в рендере сущности.
Результат: у блока модель норм(скрин один, без текстуры), а в рендере сущности заюзать не получается(второй скрин).
Че я делаю не правильно?
blockstate:
{
"forge_marker": 1,
"defaults": {
"textures": {},
"model": "modid:some_model.obj"
},
"variants": {
"normal": [{}],
"inventory": [{
"transform": "forge:default-block"
}]
}
}
рендер сущности:
@Override
public void doRender(BaseEntity entity, double x, double y, double z, float entityYaw, float partialTicks) {
GlStateManager.pushMatrix();
GlStateManager.disableCull();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 0F, 240F);
GlStateManager.translate(x,y,z);
/* First variant
ItemRenderer ir = Minecraft.getMinecraft().getItemRenderer();
ir.renderItem(Minecraft.getMinecraft().player,
GameRegistry.makeItemStack(entity.getModel().getResourceDomain()+":"+entity.getModel().getResourcePath(),0,1,""),
ItemCameraTransforms.TransformType.GROUND);
*/
//Second
IBakedModel model = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(entity.getModel());
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
bufferbuilder.begin(7, DefaultVertexFormats.BLOCK);
for (EnumFacing enumfacing : EnumFacing.values()) {
List<BakedQuad> quads = model.getQuads(null, enumfacing, 0L);
renderQuads(bufferbuilder, quads);
}
List<BakedQuad> quads = model.getQuads(null, null, 0L);
renderQuads(bufferbuilder, quads);
tessellator.draw();
GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit);
GlStateManager.enableTexture2D();
GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit);
GlStateManager.enableCull();
GlStateManager.popMatrix();
}
Бонусный вопрос:
Есть ли способ сконвертировать obj-модель в java-модель, которая целиком кодом, через вызовы тесселятора, типо
Заранее спасибо)