roj234
本帖最后由 roj234 于 2019-3-13 20:26 编辑

最好还能教教怎么渲染
  1.       GL11.glPushMatrix();
  2.       float Sizelogo = 1.5F;
  3.       GL11.glDisable(2896);
  4.       GL11.glDisable(2884);
  5.       GL11.glScalef(Sizelogo, Sizelogo, Sizelogo);
  6.       GL11.glTranslatef(0.0F, 0.4F + animate / 25.0F, 0.0F);
  7.       bind("title");
  8.       System.out.println("Renderering...");
  9.       GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
  10.       GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
  11.       renderObj("title");
  12.       GL11.glPopMatrix();
复制代码
一点反应都没有,但是方法被调用了
可能是位置不对?
ModelBiped.render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
里面的参数都是干嘛的



  1.     protected void bind(String name){
  2.         ResourceLocation loc = res.get(name);
  3.         if(loc != null)
  4.              Minecraft.getMinecraft().getRenderManager().renderEngine.bindTexture(loc);
  5.         else
  6.             System.out.println("IS NULL");
  7.     }

  8.     protected void renderObj(String name){
  9.         this.res.getObj(name).renderAll();
  10. (这里返回的是1.7.10forge的OBJLoader的代码)当然了被我改过以支持1.12.2
  11.     }
复制代码


森林蝙蝠
本帖最后由 森林蝙蝠 于 2019-3-13 02:32 编辑

public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
    //调用了setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor,
    Entiity entityIn)方法,你的par变量可能是反混淆没到位导致的。
}
glTexImage2D没写,不是bind了之后立刻就可以开始渲染的;
以下吐槽:
1.12有OBJLoader,方法大同小异,不应写1.7的代码;

glDisable的时候最好写GL_LIGHTING这种预设值而不是直接数字,你看着爽了别人遭殃了,还得十进制转16进制去查。

roj234
本帖最后由 roj234 于 2019-3-13 20:26 编辑
森林蝙蝠 发表于 2019-3-13 01:51
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float  ...

1 这代码也是我反编译别人的,什么预设值参数名当然是没有的
1.05 这破mod下了都加载不了(forge根本认不出这是MOD)说是1.12其实是1.7.10什么的但是看着效果还可以就把render反编译出来了自己去实现
2 1.12的OBJLoader没找到renderAll等方法
3 后来发现是VertexFormatElement参数写错了和一堆BufferBuilder的问题

现在的代码

  1.             Tessellator tessellator = Tessellator.getInstance();
  2.             BufferBuilder buffer = tessellator.getBuffer();
  3.         
  4.             buffer.begin(glDrawingMode, vex);
  5.             render(buffer);
  6.             tessellator.draw();
  7. 之前的
  8.             Tessellator tessellator = Tessellator.getInstance();
  9.             BufferBuilder buffer = tessellator.getBuffer();
  10.         

  11.             render(buffer);
  12.             tessellator.draw();

  13. 。。。render(BufferBuilder bf){
  14.     VertexFormat = new ....;
  15.    vex.addElement....
  16. for(Face face:this.faceList){
  17. if(face.UV){
  18. vex.addElement.....

  19.     bf.begin(mode,vex);
  20. bf.pos......endVertex
  21. tessellator.draw();
  22. }else
  23. {
  24.     bf.begin(mode,vex);
  25. bf.pos......endVertex
  26. tessellator.draw();
  27. }
  28. }
复制代码

第一页 上一页 下一页 最后一页