1
我想讓模型變得非常接近相機,以便它可以被看得更好,但它被繪製得如此之遙,我不知道如何將它移近。我嘗試使用GL11.glTranslatef(0,0,1);
來讓它靠近,但由於某種奇怪的原因,物體只是保持相同的距離而不會離得更近。然後消失在近/遠平面視圖之外。關於如何解決此問題的任何想法?下面有一堂課。3D模型不會翻譯
package engine;
import model.Face;
import model.Model;
import model.ObjLoader;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.vector.Vector3f;
public class Render {
Model m = null;
public Render() {
}
public void draw(){
GL11.glClearColor(0, 0, 0, 1);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
GL11.glBegin(GL11.GL_TRIANGLES);
for (Face f : m.faces){
//This code draws the model.
Vector3f n1 = m.normals.get((int)f.normalIndicies.x - 1);
GL11.glNormal3f(n1.x, n1.y, n1.z);
Vector3f v1 = m.vertecies.get((int)f.indicies.x - 1);
GL11.glVertex3f(v1.x, v1.y, v1.z); //First vertex
Vector3f n2 = m.normals.get((int)f.normalIndicies.y - 1);
GL11.glNormal3f(n2.x, n2.y, n2.z);
Vector3f v2 = m.vertecies.get((int)f.indicies.y - 1);
GL11.glVertex3f(v2.x, v2.y, v2.z); //second vertex
Vector3f n3 = m.normals.get((int)f.normalIndicies.z - 1);
GL11.glNormal3f(n3.x, n3.y, n3.z);
Vector3f v3 = m.vertecies.get((int)f.indicies.z - 1);
GL11.glVertex3f(v3.x, v3.y, v3.z); // third vertex
}
GL11.glEnd();
GL11.glTranslatef(0, 0, 1); // <---- Here is the issue!!!
}
public void initOpenGL(){
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 600, 0, 1, -100);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
try{
m = ObjLoader.loadModel("bunnyWithNormals.obj");
}catch (Exception e){
e.printStackTrace();
}
GL11.glTranslatef(400f, 300f, 0); // moves it onto the screen
}
}
謝謝!我忘了glOrtho()將事物放入2D視角。 – user3140916 2014-10-20 01:58:07