JREGC

Главная | Регистрация | Вход Приветствую Вас Инопланетяне | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: wawe  
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » LWJGL Основы 3 - Quad
LWJGL Основы 3 - Quad
waweДата: Вторник, 07.08.2012, 14:42 | Сообщение # 1
Просто человек...
Группа: Администраторы
Сообщений: 50
Награды: 3
Статус: Offline
Этот туториал о доступе к OpenGL в LWJGL и не учит вас OpenGL. LWJGL OpenGL API идентично соотносится 1:1 с C - версией (с некоторыми исключениями). Что позволяет просто использовать или адаптировать любой из множества OpenGL туториалов и руководств в онлайн и использовать их в LWJGL.

Все методы OpenGL находятся в пакете org.lwjgl.opengl.* и сохранены в классах с соответствующими именами GL11, GL12, GL13, GL2.0, ARBVertexShader, ARBFragmentShader, и т.д.

Отрисовка Quad с OpenGL
Код из туториала по Display будет использован здесь с небольшими изменениями для отрисовки четырехугольника (quad) на Display. 2d вида должно быть достаточно для рисования четырехугольника, это задается использованием ортографической матрицы размером 800*600 с расстоянием клиппинга между 1 и -1. Это должно быть установлено лишь один раз и будет вызываться за пределами основного цикла.

Code

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 600, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);


Оставшуюся часть кода необходимо вызывать в каждом кадре и она будет в основном цикле. Этот код очистит экран, установит цвет четырехугольника, и отрисует вершины четырехугольника.

Code

// Очистка экрана и буфера глубины
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);         
                      
// Установка цвета четырехугольника (R,G,B,A)
GL11.glColor3f(0.5f,0.5f,1.0f);
              
// отрисовка четырехугольника
GL11.glBegin(GL11.GL_QUADS);
       GL11.glVertex2f(100,100);
       GL11.glVertex2f(100+200,100);
       GL11.glVertex2f(100+200,100+200);
       GL11.glVertex2f(100,100+200);
//конец отрисовки.
GL11.glEnd();


Полный код:
Code

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
       
public class QuadExample {
       
       public void start() {
           try {
               Display.setDisplayMode(new DisplayMode(800,600));
               Display.create();
           } catch (LWJGLException e) {
               e.printStackTrace();
               System.exit(0);
           }
       
           GL11.glMatrixMode(GL11.GL_PROJECTION);
           GL11.glLoadIdentity();
           GL11.glOrtho(0, 800, 600, 0, 1, -1);
           GL11.glMatrixMode(GL11.GL_MODELVIEW);
       
           while (!Display.isCloseRequested()) {
               GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);     
                      
               // устанавливаем цвет quad.
               GL11.glColor3f(0.5f,0.5f,1.0f);
                      
               GL11.glBegin(GL11.GL_QUADS);
                   GL11.glVertex2f(100,100);
                   GL11.glVertex2f(100+200,100);
                   GL11.glVertex2f(100+200,100+200);
                   GL11.glVertex2f(100,100+200);
               GL11.glEnd();
       
               Display.update();
           }
       
           Display.destroy();
       }
       
       public static void main(String[] argv) {
           QuadExample quadExample = new QuadExample();
           quadExample.start();
       }
}
 
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » LWJGL Основы 3 - Quad
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Используются технологии uCoz