/ / Більше боротьби з 3D-графікою за допомогою полегшеної ігрової бібліотеки Java - Java, 3d, window, lwjgl

Більше боротьби з 3D-графікою за допомогою легкої бібліотеки Java-ігор - java, 3d, window, lwjgl

У мене більше проблем із візуалізацією 3dоб'єктів у Java, ось моя нова проблема. Мені вдалося імпортувати необхідні бібліотеки (gluPerspective тощо), однак, коли я запускаю свою програму Java у середовищі eclipse, вона відкриває вікно, тоді вікно залишається чорним. Ось мій код:

    package test;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;

public class Obj3d {
public static void main(String[] args) {
Obj3d obj = new Obj3d();
obj.start();
}

public void start() {
try {
Display.setDisplayMode(new DisplayMode(800, 600));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}

init3dGL();

while(!Display.isCloseRequested()) {
clear();
renderCube();
Display.update();
}

Display.destroy();
System.exit(0);
}

public void init3dGL() {
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GLU.gluPerspective(45, 2, -1, 100);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthFunc(GL11.GL_LEQUAL);
return;
}

public void renderCube() {
GL11.glBegin(GL11.GL_QUADS);
//front faces
GL11.glNormal3d(0, 0, 1);
GL11.glColor3d(0.0, 1.0, 1.0);
GL11.glVertex3d(5, 5, -5);
GL11.glVertex3d(-5, 5, -5);
GL11.glVertex3d(-5, -5, -5);
GL11.glVertex3d(5, -5, -5);
GL11.glEnd();
return;
}

public void clear() {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
}

}

Я не бачу своєї помилки у вищезазначеному кодуванні, однак я новачок у програмуванні lwjgl 3d, тому це може бути пов’язано з моїм нестачею досвіду. Будьте терплячі, хоча я швидко навчаюсь. Заздалегідь дякую.

Відповіді:

2 для відповіді № 1

Думаю, використання негативної близької відстані - не така гарна ідея. Спробуйте

GLU.gluPerpective(45, 2, 0.1, 100);

І це 2 там фактично має бути співвідношення сторін вашого вікна (ширина / висота), у вашому випадку 1.333 = 800 / 600.


0 для відповіді № 2

Я відповів на власне запитання. На додаток до наведених вище відповідей, я також не правильно очистив екран і не повернув метод. Недбалі помилки.