Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
public void render() { while(!Display.isCloseRequested()) { make2D(); System.out.println("Rendere 2D"); tl.renderPicture(); if(graphicstype == true) { make3D(); System.out.println("Rendere 3D"); } Display.sync(60); Display.update(); } } protected static void make2D() { //Remove the Z axis GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glPushMatrix(); GL11.glLoadIdentity(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glOrtho(0, windowdimensions[0], 0,windowdimensions[1] , -1, 1); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glPushMatrix(); GL11.glLoadIdentity(); GL11.glEnable(GL11.GL_TEXTURE_2D); } protected static void make3D() { //Restore the Z axis GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glPopMatrix(); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glPopMatrix(); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_LIGHTING); } |
Community-Fossil
Zitat
Nur funktioniert das nicht,
Community-Fossil
hättet ihr ein Beispiel mit einer Render Engine womit ich dieses Problem lösen kann?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (17.01.2014, 03:37)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
import java.io.PrintWriter; import java.io.StringWriter; import org.lwjgl.LWJGLException; import org.lwjgl.Sys; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.DisplayMode; import org.lwjgl.opengl.GL11; public class App { int targetWidth = 640; int targetHeight = 480; public static void main(String[] args) { new App().run(); } public void run() { try { DisplayMode chosenMode = new DisplayMode(targetWidth, targetHeight); Display.setDisplayMode(chosenMode); Display.setTitle("Example"); Display.setFullscreen(false); Display.create(); throw new LWJGLException("test"); } catch (LWJGLException e) { final StringWriter sw = new StringWriter(); sw.append("Unable to create display:\n"); e.printStackTrace(new PrintWriter(sw)); System.out.println(sw.toString()); Sys.alert("Error", sw.toString()); System.exit(0); } GL11.glClearColor(0, 0, 0, 0); boolean gameRunning = true; int FRAMERATE = 60; while (gameRunning) { // Bildschirm leeren GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Kreiseln GL11.glRotatef(0.6f, 0, 0, 1); // Dreieck malen GL11.glBegin(GL11.GL_TRIANGLES); GL11.glColor4f(1f, 1f, 1f, 1f); GL11.glVertex3f(-0.5f, -0.5f, 0); GL11.glVertex3f(0.5f, -0.5f, 0); GL11.glVertex3f(0, 0.5f, 0); GL11.glEnd(); // 2D Matrizen setzen begin2D(); // Dreieck malen nun im 2D Raum (eine Einheit = ein Pixel) GL11.glBegin(GL11.GL_TRIANGLES); GL11.glColor4f(0f, 0f, 1f, 1f); GL11.glVertex3f(0f, 0, 0); GL11.glColor4f(0f, 0f, 1f, 0f); GL11.glVertex3f(targetWidth, targetHeight, 0); GL11.glColor4f(0f, 0f, 1f, 1f); GL11.glVertex3f(0, targetHeight, 0); GL11.glEnd(); // 3D Matrizen "wiederherstellen" end2D(); Display.update(); Display.sync(FRAMERATE); if (Display.isCloseRequested()) { gameRunning = false; Display.destroy(); System.exit(0); } } } protected void begin2D() { // Tiefentest deaktivieren GL11.glDisable(GL11.GL_DEPTH_TEST); // Blending aktivieren GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); // Projektionsmatrix bearbeiten GL11.glMatrixMode(GL11.GL_PROJECTION); // Projektionsmatrix auf Matrix-Stack sichern GL11.glPushMatrix(); // Projektionsmatrix zurücksetzen GL11.glLoadIdentity(); // Orthographische Perspektive setzen GL11.glOrtho(0, targetWidth, 0, targetHeight, -1, 1); // "Objekttransformationsmatrix" bearbeiten GL11.glMatrixMode(GL11.GL_MODELVIEW); // "Objekttransformationsmatrix" auf Matrix-Stack sichern GL11.glPushMatrix(); // "Objekttransformationsmatrix" zurücksetzen GL11.glLoadIdentity(); } protected void end2D() { // Tiefentest aktivieren GL11.glEnable(GL11.GL_DEPTH_TEST); // Blending deaktivieren GL11.glDisable(GL11.GL_BLEND); // Projektionsmatrix bearbeiten GL11.glMatrixMode(GL11.GL_PROJECTION); // Alte in begin2D auf den Matrix-Stack gelegte Matrix wiederherstellen GL11.glPopMatrix(); // "Objekttransformationsmatrix" bearbeiten GL11.glMatrixMode(GL11.GL_MODELVIEW); // Alte in begin2D auf den Matrix-Stack gelegte Matrix wiederherstellen GL11.glPopMatrix(); } } |
Werbeanzeige