- 42
- 6
Здравствуйте. Я хочу сделать так, чтобы моб (моб - очень похожее по классу на стрелу копье) рендерился не с Java-кода, а с OBJ-модели. Лазая по сурсам MS, я нашел код этого и изменил его под себя.
Но он не совсем правильно работает. Насчет поворота по сторонам света я не уверен, но, например, наклона по вертикали вообще нет.
Пожалуйста, скиньте гайд (не важно то, на каком языке) ил код по тому, как сделать рендер моба (тут летающее копье (поэтому важен и наклон, кроме поворота)) из OBJ-модели.
Код:
//- By Vamig Aliev.
//- https://vk.com/win_vista.
package ru.vamig.chemworld.render;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelCustom;
public class EntityRenderOBJ extends Render {
public IModelCustom m;
public ResourceLocation t;
public float t_x, t_y, t_z, r_a, r_x, r_y, r_z, s_x, s_y, s_z;
public EntityRenderOBJ(IModelCustom model, ResourceLocation texture,
float tx, float ty, float tz, float ra, float rx, float ry, float rz, float sx, float sy, float sz) {
m = model;
t = texture;
t_x = tx; t_y = ty; t_z = tz;
r_a = ra; r_x = rx; r_y = ry; r_z = rz;
s_x = sx; s_y = sy; s_z = sz;
}
@Override
public void doRender(Entity e, double x, double y, double z, float f1, float f2) {
GL11.glPushMatrix();
GL11.glTranslatef((float)x + t_x, (float)y + t_y, (float)z + t_z);
GL11.glRotatef (r_a, r_x, r_y, r_z);
GL11.glScalef ( s_x, s_y, s_z);
GL11.glRotatef(180.0F - f1 , 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-e.prevRotationPitch - (e.rotationPitch - e.prevRotationPitch) * f2, 0.0F, 0.0F, 1.0F);
bindEntityTexture(e);
m.renderAll();
GL11.glPopMatrix();
}
@Override
public ResourceLocation getEntityTexture(Entity e) {
return t;
}
}
Пожалуйста, скиньте гайд (не важно то, на каком языке) ил код по тому, как сделать рендер моба (тут летающее копье (поэтому важен и наклон, кроме поворота)) из OBJ-модели.