亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java lwjgl GLSL 著色器問題與 mac osx 驗證失?。簺]有頂點數組對象綁定

Java lwjgl GLSL 著色器問題與 mac osx 驗證失?。簺]有頂點數組對象綁定

喵喔喔 2023-05-10 13:27:25
我正在使用lwjgl在 Java 中構建 OPENGL 應用程序,并遵循thebennybox在 YouTube 上的部分教程我能夠使用我構建的 Mesh 類創建矩形。import engine.core.Util;import static org.lwjgl.opengl.GL15.*;import static org.lwjgl.opengl.GL20.*;public class Mesh {    private int vbo;    private int size;    public Mesh() {       this.vbo = glGenBuffers();       this.size = 0;    }    public void addVertices(Vertex[] vertices){        this.size = vertices.length * Vertex.SIZE;        glBindBuffer(GL_ARRAY_BUFFER, vbo);        glBufferData(GL_ARRAY_BUFFER, Util.createFlippedBuffer(vertices), GL_STATIC_DRAW);    }    public void draw(){        glEnableVertexAttribArray(0);        glBindBuffer(GL_ARRAY_BUFFER, vbo);        glVertexAttribPointer(0, 3, GL_FLOAT, false, Vertex.SIZE * 4, 0);        glDrawArrays(GL_TRIANGLES, 0, this.size);        glDisableVertexAttribArray(0);    }}和util幫手import engine.render.Vertex;import org.lwjgl.BufferUtils;import java.nio.FloatBuffer;public class Util {    public static FloatBuffer createFloatBuffer(int size){        return BufferUtils.createFloatBuffer(size);    }    public static FloatBuffer createFlippedBuffer(Vertex[] vertices){        FloatBuffer buffer = createFloatBuffer(vertices.length * Vertex.SIZE);        for(int i = 0; i < vertices.length; i++) {            buffer.put(vertices[i].getPos().getX());            buffer.put(vertices[i].getPos().getY());            buffer.put(vertices[i].getPos().getZ());        }        buffer.flip();        return buffer;    }}這是我渲染的方式  this.mesh = new Mesh();   Vertex[] data = new Vertex[]{           //1st triangle           new Vertex(new Vector3(0.5f,-0.5f,0)), //RB           new Vertex(new Vector3(-0.5f,-0.5f,0)), //LB           new Vertex(new Vector3(0.5f,0.5f,0)), //RT           //2nd triangle           new Vertex(new Vector3(-0.5f,0.5f,0)), //RB           new Vertex(new Vector3(0.5f,0.5f,0)), //RT           new Vertex(new Vector3(-0.5f,-0.5f,0)), //LB   };   mesh.addVertices(data);   public void render(){ //update per frame     mesh.draw();   } 
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號