OpenGL项目实战I

环境配置与窗口测试

此项目基于 ThinMatrix 的视频教程展开
  1. 下载 LWJGL2 与 Slick-Utils

传送门————————>LWJGL2

传送门————————>Slick-Util

  1. 创建lib文件夹,下创建两个子文件夹 jars 和 natives

    • 将LWJGL压缩包jar文件夹中的 lwjgl.jar 与 lwjgl_util.jar 复制到 jars 文件夹
    • 将LWJGL压缩包native文件夹中所以的dll文件复制到 natives 文件夹
    • 将 slick-util.jar 复制到 jars 文件夹
  2. 将lib文件夹复制到项目路径下,在IDE中添加依赖(我这里用到Intellij IDEA),包括jars文件夹下的三个jar包与natives整个文件夹

引入外部依赖

  1. 新建package renderEngine 其下创建 DisplayManager.java

     package renderEngine;
     import org.lwjgl.LWJGLException;
     import org.lwjgl.opengl.*;
     public class DisplayManager {
         private static final int WIDTH = 1280;
         private static final int HEIGHT = 720;
         private static final int FPS_CAP = 120; // 封顶帧数
         public static void creatDisplay()
         {
             ContextAttribs attribs = new ContextAttribs(3,2);
             attribs.withForwardCompatible(true);
             attribs.withProfileCore(true);
             try
             {
                 Display.setDisplayMode(new DisplayMode(WIDTH,HEIGHT));
                 Display.create(new PixelFormat(), attribs);
                 Display.setTitle("3D GAME TEST");
             }
             catch (LWJGLException e)
             {
                 e.printStackTrace();
             }
             GL11.glViewport(0,0,WIDTH,HEIGHT);
         }
         public static void updateDisplay()
         {
             Display.sync(FPS_CAP);
             Display.update();
         }
         public static void closeDisplay()
         {
             Display.destroy();
         }
     }
    
  2. 新建package engineTest ,其下创建 MainGameLoop.java 运行后若能正常启动窗口则配置完成

     package engineTest;
     import org.lwjgl.opengl.Display;
     import renderEngine.DisplayManager;
     public class MainGameLoop {
         public static void main(String[] args)
         {
             DisplayManager.creatDisplay();
             while(!Display.isCloseRequested())
             {
                 // game logic
                 // render
                 DisplayManager.updateDisplay();
             }
             DisplayManager.closeDisplay();
         }
     }
    

(下接OpenGL项目实战II)

OpenGL项目实战I
https://baifabaiquan.cn/2021/03/15/OpenGL项目实战I/
作者
白发败犬
发布于
2021年3月15日
许可协议