Android OpenGL ES 2.0 проекция glm не работаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android OpenGL ES 2.0 проекция glm не работает

Сообщение Anonymous »

Я использую c/c++ (NDK) для Android для программирования в opengl 2.0. Поскольку официальной библиотеки C++ для Android не существует, я использую библиотеку GLM!

пока я могу нарисовать белый треугольник на черном фоне. без применения какой-либо проекции/усеченной пирамиды или матрицы камеры/вида. Конечно, это приводит к тому, что треугольник масштабируется по ширине экрана.

однако, как только я применяю преобразование камеры и проекции, треугольник исчезает со сцены, и остается только появляется цвет фона.

Это соответствующий код:

Код: Выделить всё

float triangleCoords[] = {   // in counterclockwise order:
0,  1, 0, // top
-1, 0, 0, // bottom left
1, 0, 0  // bottom right
};

std::string vertexShaderCode =
"attribute vec4 vPosition; "
"uniform mat4 uMVPMatrix;  "
"void main() {"
"  gl_Position = uMVPMatrix*vPosition;"
"}";

std::string fragmentShaderCode =
"precision mediump float;"
"uniform vec4 vColor;"
"void main() {"
"  gl_FragColor = vColor;"
"}";

mvpMatrix=glm::translate(mvpMatrix,vec3(0,-0.5,0));

mvpMatrix*=glm::lookAt(vec3(0,0,-3),vec3(0,0,0),vec3(0,1,0));

mvpMatrix*=glm::frustum(-1.0f,1.0f,-ratio,ratio,3.0f,7.0f);
где vec3 — это «typedef glm::vec3», а mvpMatrix — «glm::mat4x4»
Я пробовал это разными способами, например, умножая LookAt перед усеченным конусом и изменяя ближние дальние значения для усеченного конуса и т. д. и т. д.

Также я пробовал изменить со- по оси ординат, чтобы увидеть, не обрезалось ли оно, но безрезультатно.

Однако перевод 0,5 единиц работает правильно, если не применяются LookAt и Frustum, что означает, что переход значений из матрица для шейдера правильная.

Помогите мне с этим

Подробнее здесь: https://stackoverflow.com/questions/280 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»