- 19
- 0
Я новичёк в этом деле, но решил добавить модель на еду.
Создал 3д модель пончика , и экспортировал её в .obj и начал подключать,
при этом текстуры наложения я тоже сделал отдельно и подключил.
в
Вот как я делаю рендеринг модели
В добавок использую Wrapper загрузки модели Wavefront обёрткой от Dahaka
В результате получаю вот такое:




Можете направить на верный путь, что я сделал не так, может модель не такая, или код неправильно написал?
Способо рендеринга изучал по вот этому учебнику
Создал 3д модель пончика , и экспортировал её в .obj и начал подключать,
при этом текстуры наложения я тоже сделал отдельно и подключил.
в
models/ я добавил файлы .obj и .mtlВот как я делаю рендеринг модели
Java:
package com.integral.tutorialmod.assets.foods.ice_doughnut;
import com.integral.tutorialmod.TutorialModConfig;
import com.integral.tutorialmod.assets.foods.base.IFoodRender;
import com.integral.tutorialmod.utils.ModelWrapperDisplayList;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import net.minecraftforge.client.model.obj.WavefrontObject;
import org.lwjgl.opengl.GL11;
public class IceDoughnutRender implements IFoodRender {
private final ResourceLocation _modelPath = TutorialModConfig.getResourceLocation("models/ice_doughnut/ice_doughnut.obj");
private final ResourceLocation _doughnutTexture = TutorialModConfig.getResourceLocation("textures/items/foods/ice_doughnut/doughnut.png");
private final ResourceLocation _glazeTexture = TutorialModConfig.getResourceLocation("textures/items/foods/ice_doughnut/glaze.png");
private final ResourceLocation _sprinkleTexture = TutorialModConfig.getResourceLocation("textures/items/foods/ice_doughnut/sprinkle.png");
private final IModelCustom _iceDoughnutModel = new ModelWrapperDisplayList((WavefrontObject) AdvancedModelLoader.loadModel(this._modelPath));
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return helper != ItemRendererHelper.ENTITY_ROTATION;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(this._sprinkleTexture);
this._iceDoughnutModel.renderAll();
Minecraft.getMinecraft().renderEngine.bindTexture(this._doughnutTexture);
this._iceDoughnutModel.renderAll();
Minecraft.getMinecraft().renderEngine.bindTexture(this._glazeTexture);
this._iceDoughnutModel.renderAll();
GL11.glPopMatrix();
}
}
В результате получаю вот такое:

Можете направить на верный путь, что я сделал не так, может модель не такая, или код неправильно написал?
Способо рендеринга изучал по вот этому учебнику