Камера Java OpenGL

Я начал с JOGL в последнее время, я знаю, как создавать и рисовать объекты на холсте, но я не мог найти учебник или объяснения о том, как установить и повернуть камеру. Я нашел только исходный код, но, поскольку я новичок в этом, это не слишком помогает.

Кто-нибудь знает хороший учебник или место для начала? Я гуглил, но ничего не нашел (только для JOGL 1.5, а я использую 2.0).


person La bla bla    schedule 05.05.2012    source источник
comment
это может быть полезно land-of-kain.de/docs/jogl   -  person NullPoiиteя    schedule 07.05.2012
comment
спасибо, я видел этот сайт, но я думаю, что он использует JOGL 1.5, так как большинство методов отличается от API, который я получил.   -  person La bla bla    schedule 07.05.2012
comment
Возможный дубликат: проверьте pmvMatrix jogl stackoverflow.com/a/13485670/398672   -  person olamedia    schedule 29.12.2012
comment
возможный дубликат того, что было задано 6 месяцев спустя...   -  person La bla bla    schedule 29.12.2012


Ответы (2)


но я не смог найти туториала или пояснений о том, как установить и повернуть камеру

Потому что его нет. OpenGL — это не граф сцены. В основном это сложный холст и простые инструменты для рисования точек, линий и треугольников. Размещение «объектов» на самом деле означает применение линейных преобразований для размещения трехмерного вектора в двухмерном буфере кадра.

Таким образом, вместо того, чтобы размещать «камеру», вы просто перемещаетесь по всему миру (преобразование) в противоположном направлении, в котором вы перемещаете камеру, что приводит к тому же результату.

person datenwolf    schedule 05.05.2012
comment
спасибо за ваш ответ, так есть ли учебник о том, как это сделать? Мне интересно перемещаться по объекту с помощью мыши - person La bla bla; 05.05.2012
comment
OpenGL — это не граф сцены, а указание человеку в направлении выяснения того, как представить камеру (вектор + кватернион или матрица) и как преобразовать это представление в вызов OpenGL для получения желаемого эффекта (GL_MODELVIEW + glLoadMatrix) будет полезнее, чем ваш довольно непонятный ответ. Кроме того, учитывая, что конвейер матричных преобразований ВСТРОЕН в GL, называть его холстом с примитивами рисования немного неискренне. - person Jherico; 27.12.2012
comment
@Jherico: поскольку манипулирование основной матрицей OpenGL-3 было исключено из OpenGL. На самом деле планы по удалению матричного стека появились еще со времен OpenGL-2. Также ваш ответ подтверждает плохие методы. - person datenwolf; 27.12.2012
comment
Возможно, вам следует перенести часть этой соответствующей информации в свой ответ. - person Jherico; 28.12.2012

person    schedule
comment
Стек матриц OpenGL был удален из современных версий OpenGL. Вы не должны использовать встроенный матричный стек OpenGL во вновь написанном коде! Многие люди думают, что матричные операции OpenGL ускорялись с помощью графического процессора. Их никогда не было! Также ваше предложение оставить конечный автомат GL в режиме MODELVIEW неверно и на самом деле приводит к путанице у новичков. В любой более продвинутой программе вам нужно изменить проекцию несколько раз (такие вещи, как HUD, разделенный экран, несколько панелей просмотра или если вы визуализируете тень в теневой буфер, требуют этого). - person datenwolf; 27.12.2012
comment
Единственная причина придерживаться фиксированного конвейера функций OpenGL (то есть встроенного матричного стека) — это если вы хотите поддерживать графические процессоры, выпущенные до 2004 года. В наши дни их трудно найти. - person datenwolf; 27.12.2012