Size: a a a

pro.graphon (and gamedev)

2021 April 05

d

disba1ancer in pro.graphon (and gamedev)
Deathwish
Какая там конструкция выходит, есть код?
https://github.com/disba1ancer/dse/blob/master/src/renders/gl31/draw.vert#L9
вот тут хранятся компоненты BCDE, проверка будет что-то вроде:
if (perspArgs.z == 0) // ortho
else //perspective
источник

d

disba1ancer in pro.graphon (and gamedev)
в ветках цикла просто применение проекции на вершины в пространстве вида
источник

D

Deathwish in pro.graphon (and gamedev)
Deathwish
Если так, то ты можешь просто заменить вычислением
Есть много алгоритмов обхода If, условное присвоение, условная выборка и тд
источник

d

disba1ancer in pro.graphon (and gamedev)
Deathwish
Там тебе в зависимости от условия только одну переменную надо менять или нет?
там, возможно, сложнее
источник

D

Deathwish in pro.graphon (and gamedev)
disba1ancer
там, возможно, сложнее
Да даже можно адреса свапать по условию
источник

D

Deathwish in pro.graphon (and gamedev)
Я так делаю обычно
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
а есть вариант вбить константные far и near значения?
я думаю можно, но придётся считать всё в шейдере
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
disba1ancer
https://github.com/disba1ancer/dse/blob/master/src/renders/gl31/draw.vert#L9
вот тут хранятся компоненты BCDE, проверка будет что-то вроде:
if (perspArgs.z == 0) // ortho
else //perspective
ты же в курсе, что вместо
uniform vec3 camPos;
uniform vec4 camQRot;
uniform float invAspRatio;
uniform vec4 perspArgs;
uniform vec3 iPos;
uniform vec4 qRot;
uniform vec3 scale;
мог бы передать одну матрицу 4х4?
источник

D

Deathwish in pro.graphon (and gamedev)
Ну это да, действительно
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
ты же в курсе, что вместо
uniform vec3 camPos;
uniform vec4 camQRot;
uniform float invAspRatio;
uniform vec4 perspArgs;
uniform vec3 iPos;
uniform vec4 qRot;
uniform vec3 scale;
мог бы передать одну матрицу 4х4?
ну в принципе, да можно, я и так на матрицы перевожу
источник

d

disba1ancer in pro.graphon (and gamedev)
только я ещё сейчас заметил, что у меня соотношение сторон определяется размером окна, а не камерой
источник

D

Deathwish in pro.graphon (and gamedev)
disba1ancer
https://github.com/disba1ancer/dse/blob/master/src/renders/gl31/draw.vert#L9
вот тут хранятся компоненты BCDE, проверка будет что-то вроде:
if (perspArgs.z == 0) // ortho
else //perspective
Этот код у тебя в главной программе же?
источник

D

Deathwish in pro.graphon (and gamedev)
Я не про шейдер
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
мир рендерят перевёрнутым ;)
кстати, а как это "перевёрнутым"?
источник

D

Deathwish in pro.graphon (and gamedev)
А про выбор перспективы
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
disba1ancer
кстати, а как это "перевёрнутым"?
позицию и ориентацию камеры отражают относительно плоскости, рендерят мир прямо в фреймбуфер если идеальное зеркало или в текстуру, если нужно будет имитировать искажение
источник

d

disba1ancer in pro.graphon (and gamedev)
Deathwish
А про выбор перспективы
там выбора перспективы пока вроде нет, но я бы хотел чтобы она была доступна
источник

d

disba1ancer in pro.graphon (and gamedev)
Timur Gagiev
позицию и ориентацию камеры отражают относительно плоскости, рендерят мир прямо в фреймбуфер если идеальное зеркало или в текстуру, если нужно будет имитировать искажение
вот про что это...
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
источник

MK

Michael Kharitonov in pro.graphon (and gamedev)
Бладрейн чтоль?)
источник