/** * * @author Ruslan.Nevedomy */ public class JpctFistStep {
private World world; private FrameBuffer buffer; private Object3D box; /** * @param args the command line arguments */ public static void main(String[] args) throws Exception{ // TODO code application logic here new JpctFistStep().loop(); } public JpctFistStep() throws Exception { world = new World(); world.setAmbientLight(0, 255, 105);
Создаем экземпляр класса World и устанавливаем общее освещение.
Класс World, в jPCT является контейнером, который аккумулирует все, что нужно для того, чтобы описать 3D-сцену, это источники света, 3D-объекты, камеры.
Код
world = new World(); world.setAmbientLight(0, 255, 105);
Далее создаем объект. Объект в jPCT это экземпляр Object3D. Его можно загрузить из файла, создать самостоятельно из треугольников или выбрать один из множества стандартных примитивов. В данном примере выбран последний вариант.
Код
box = Primitives.getBox(13f, 2f);
Следующий шаг это построение объекта, этот шаг должен быть выполнен для всех объектов требующих отрисовки, во время построения объекта, происходит создание нормалей, расчет ограничительной рамки, расчет поворотов и другие действия. Данное действие можно не выполнять если установить параметр autoBuild специального класса настройки Config в true.
Код
box.build();
Следующий код добавляет ранее созданный объект в мир для отрисовки а также задает положение камеры и направляет ее на центр созданного объекта
После того как мы создали объект для отрисовки приступим к созданию окна в котором он будет рисоваться. При создании буфера указываем размеры 800х600 и режим SAMPLINGMODE_NORMAL т.к. мы не используем антиализинг. Настраиваем JPCT на использование OpenGL, сначала отключаем программный рендеринг затем включаем OpenGL. В этом случае создание окна берет на себя JPCT.
Код
buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_NORMAL); buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE); buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
Непосредственно сам цикл рисования выглядит следующим образом