Определение нормального для динамически движущихся векторовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Определение нормального для динамически движущихся векторов

Сообщение Anonymous »

Я попытался реализовать дробное броуновое движение. При динамическом создании вершин я также создал нормальные данные, так как плоскость находится на плоскости XZ, и все нормы вершин будут указывать в направлении y. < /P>
Однако я застрял, пытаясь сделать это нормальным. Я передаю Fragpos и Normals фрагментированному шейдеру, но когда я пытаюсь сделать нормальный, я продолжаю получать цветовой градиент вместо линии, которая представляет нормальный. < /P>
Другой вариант, который я пробовал Чтобы иметь отдельный вызов рисования только для нормального, но потом, поскольку вершины на стороне процессора все еще остаются просто плоскостью, я продолжаю получать линии, которые проходят через вершины/плоскость, не совсем то, что я хочу.
Есть ли способ нарисовать нормаль, не имея отдельного вызова рисования? код: https://github.com/shreyas9699/fbm-opengl

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

Fragment shader:

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

void main()
{
// ambient
float ambientStrength = 0.1;
vec3 ambient = ambientStrength * lightColor;

// diffuse
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(lightPos - FragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = diff * lightColor;

// specular
float specularStrength = 0.3;
vec3 viewDir = normalize(viewPos - FragPos);
vec3 reflectDir = reflect(-lightDir, norm);
float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32.0f);
vec3 specular = specularStrength * spec * lightColor;
vec3 result = (ambient + diffuse + specular) * objectColor;

if(showNormals)
{
// Render normals as a yellow color
vec3 normalColor = vec3(1.0, 1.0, 0.0); // Yellow color
vec3 normalVisualization = normalColor * abs(norm);
result = mix(result, normalVisualization, 0.5);
}

FragColor = vec4(result, 1.0);
}
без нормальной включения:
https://i.sstatic.net/ddkqdbx4.png
с нормальным включением:
https://i.sstatic.net/qsw9n16n.png
ожидал что -то подобное для всех вершин.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ng-vectors
Ответить

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

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

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

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

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