Я искал в гугле много часов без ответа хорошо объяснил, я workign с освещением, и мне нужно нормали вершин, давайте предположим, что мы имеем этот буфер вершин (Это куб):Расчет нормалей вершин
static const GLfloat g_vertex_buffer_data[] = {
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f
};
Итак, как я могу вычислить нормали вершин? Вот и все. Спасибо
Спасибо! Итак, если у меня есть плоский объект, мне не нужно нормализовать или использовать нормали вершин внутри освещения? Любой пример использования этих вершин для гладкого? – Spamdark
@Spamdark: Вам все равно нужно * нормализовать * (убедитесь, что длина вектора равна * одному *) в вашем коде освещения для математики. Вам все еще нужна нормальная вершина. Попробуйте этот URL: http://www.lighthouse3d.com/opengl/terrain/index.php3?normals –
Последний вопрос. 'усреднение значений поперечных произведений сторон треугольников . Чтобы получить крест из трех векторов сторон треугольника (v1, v2, v3), тогда' (cross1 + cross2 + cross3)/3 ' – Spamdark