Size: a a a

pro.graphon (and gamedev)

2021 April 04

U

UsernameAK in pro.graphon (and gamedev)
disba1ancer
он может поддерживать всё, просто версию его проверь
только рендердок например не работает с таким контекстом
источник

d

disba1ancer in pro.graphon (and gamedev)
UsernameAK
только рендердок например не работает с таким контекстом
да рендердок ниже 3.3 не могёт
источник

U

UsernameAK in pro.graphon (and gamedev)
disba1ancer
да рендердок ниже 3.3 не могёт
вполне может в compat profile контексте жить впрочем
источник

d

disba1ancer in pro.graphon (and gamedev)
UsernameAK
вполне может в compat profile контексте жить впрочем
если не ниже 3.3
источник

U

UsernameAK in pro.graphon (and gamedev)
disba1ancer
если не ниже 3.3
но легаси вызовы просто игнорит, а не плюётся
источник

d

disba1ancer in pro.graphon (and gamedev)
лол, кватернионы можно через std::complex представлять, если реализация предоставляет его для типов отличных от флотов, впрочем это unspecified
источник

ED

Elias Daler in pro.graphon (and gamedev)
Где почитать про то, как реализовывать draw list'ы?
Ну, т.е. сейчас в моём движке я вызываю функции drawSomething() напрямую, а внутри них OpenGL вызовы.

Но хочется чего-то более абстрактного, и чтобы код OpenGL лежал примерно в одном месте и чтобы его было легко заменить потом на какой-нибудь Vulkan лет через 5
источник

D

Deathwish in pro.graphon (and gamedev)
Elias Daler
Где почитать про то, как реализовывать draw list'ы?
Ну, т.е. сейчас в моём движке я вызываю функции drawSomething() напрямую, а внутри них OpenGL вызовы.

Но хочется чего-то более абстрактного, и чтобы код OpenGL лежал примерно в одном месте и чтобы его было легко заменить потом на какой-нибудь Vulkan лет через 5
Посмотри, как реализован рендер движка quake 2, будет полезно
источник

ED

Elias Daler in pro.graphon (and gamedev)
https://fabiensanglard.net/quake2/
Видимо начну отсюда... :D
Спасибо
источник

D

Deathwish in pro.graphon (and gamedev)
Там вообще каждый рендер это отдельный файл, скомпилированный из набора исходников
источник

D

Deathwish in pro.graphon (and gamedev)
Именно поэтому там много рендеров
источник

D

Deathwish in pro.graphon (and gamedev)
И можно их подключать, отключать динамически
источник

D

Deathwish in pro.graphon (and gamedev)
И игра этого даже не поймёт
источник

ED

Elias Daler in pro.graphon (and gamedev)
Что подразумевается тут под рендером? Типа "OpenGL renderer" или "DirectX renderer"?
источник

D

Deathwish in pro.graphon (and gamedev)
Elias Daler
Что подразумевается тут под рендером? Типа "OpenGL renderer" или "DirectX renderer"?
Именно
источник

D

Deathwish in pro.graphon (and gamedev)
Но в quake 2 там директа не было, но был opengl, glide, software, ещё какие-то, сейчас не вспомню
источник

D

Deathwish in pro.graphon (and gamedev)
Но там всё на си, но на самом деле те подходы можно и к плюсам применить
источник

U

UsernameAK in pro.graphon (and gamedev)
glide кстати какой-то довольно минималистичный был
источник

U

UsernameAK in pro.graphon (and gamedev)
там во всем апи с десяток функций
источник

ED

Elias Daler in pro.graphon (and gamedev)
Понятно. Просто я думал о том, как писать врапперы вокруг OpenGL и думал о том, что было бы хорошо, если бы они вызывались как можно близко друг к другу
Но когда у тебя сложная система, то GameRender::drawSkybox будет далеко от LevelEditor::drawTransformGizmo.
Но draw list'ы по идее должны сделать так, что будет пофиг на то, как всё именно рендерится пока только набирается draw list, а потом уже можно просто почитать код "processDrawList"
источник