Войти
ПрограммированиеФорумГрафика

Тестирование софт рендера Quake. (16 стр)

Страницы: 115 16 17 1821 Следующая »
#225
(Правка: 14:23) 14:20, 25 июля 2018

Truthfinder, FordPerfect
О, спасибо! Обязательно почитаю, даже и не ожидал как-то такой помощи.

FordPerfect
> http://forum.devmaster.net/t/advanced-rasterization/6145 - другое описание
Сайт по-моему уже умер. У меня не открывается во всяком случае даже через vpnwebsite.com.


#226
(Правка: 14:47) 14:32, 25 июля 2018

Vlad2001_MFS

Тока что напоролся. Очень годная ссылка.
http://blog.simonrodriguez.fr/articles/18-02-2017_writing_a_small… renderer.html
https://www.scratchapixel.com/lessons/3d-basic-rendering/rasteriz… ion-algorithm

#227
(Правка: 15:02) 15:02, 25 июля 2018

Vlad2001_MFS
>У меня не открывается
А госбезопасность на что?
https://web.archive.org/web/20171128164608/http://forum.devmaster… rization/6145

Truthfinder
https://gamedev.ru/flame/forum/?id=225300 , вдруг пригодится.

> http://blog.simonrodriguez.fr/articles/18-02-2017_writing_a_small_software_renderer.html
Спасибо. Там в тексте ссылки прикольные.

#228
(Правка: 15:17) 15:09, 25 июля 2018

FordPerfect
Спасибо! Про web.archive.org не знал. Стыдно.

Truthfinder
Действительно классные статьи, с них, пожалуй, и начну. Правда, в данный момент занят другим делом, поэтому софт рендером начну заниматься где в конце лета.

#229
20:59, 25 июля 2018

Vlad2001_MFS
> В процессе может и с SSE заодно разберусь.

Попробуй начать отсюда: https://habr.com/post/418247/
;-)

#230
21:23, 25 июля 2018

Truthfinder
И еще раз - спасибо!) Теперь столько всего надо прочитать, что и учится будет некогда...

P.S Какие-то вы все слишком добрые, но это и хорошо)

#231
22:07, 25 июля 2018

Vlad2001_MFS
Кстати ещё GLSpec рекомендуется к прочтению.
Там порядком инфы, о которой пользователь OpenGL часто не задумывается, но которая прямо применима при написании софтрендера.
https://www.khronos.org/registry/OpenGL/specs/gl/glspec21.pdf

Ну DirectX эквивалент (кто-то более знакомый с DirectX - дадите правильную ссылку?). Вот например:
https://docs.microsoft.com/en-us/windows/desktop/direct3d11/d3d10… r-stage-rules

Truthfinder
>> 2) Проблемы с точностью рассчёта Z-buffer'а.
>> Ну это магия чисел, одни те же формулы переписываешь или меняешь местами, и
>> вдруг всё чинится (знаю о чём говорю).
>rcpps = 11bit. Явно недостаточно при рассчётах глубины. Исправлено.
Ещё послоупочу. А где это тебе для глубины деление нужно? NDC-z линейно в screen-space. А если это повершинно, а не на пиксель - так пофиг же на скорость?

#232
1:09, 26 июля 2018

Vlad2001_MFS
https://gamedev.ru/projects/forum/?id=215799&page=55#m823

> может и с SSE заодно разберусь.
https://software.intel.com/sites/default/files/ee/11/6373 - официальная документация
https://software.intel.com/sites/landingpage/IntrinsicsGuide/ - справочник с поиском
http://softpixel.com/~cwright/programming/simd/index.php - компактные сводные таблички
https://fgiesen.wordpress.com/2016/04/03/sse-mind-the-gap/ - сборник классических приёмов
Кстати классические битовые хаки временами тоже вполне адаптируются на SIMD.

Truthfinder
https://gist.github.com/rygorous/4172889

#233
(Правка: 9:58) 9:57, 26 июля 2018

FordPerfect
> Ещё послоупочу. А где это тебе для глубины деление нужно? NDC-z линейно в
> screen-space. А если это повершинно, а не на пиксель - так пофиг же на
> скорость?

Линейно 1/z. Храним и линейно аппроксимируем u/z, v/z, 1/z, потом в каждом пикселе делаем (u/z) / (1/z), (v/z) / (1/z). В спеках OpenGL это описано.

> Truthfinder
> https://gist.github.com/rygorous/4172889

Ага, уже знаком.

#234
14:27, 26 июля 2018

Truthfinder
> Линейно 1/z. Храним и линейно аппроксимируем u/z, v/z, 1/z, потом в каждом пикселе делаем (u/z) / (1/z), (v/z) / (1/z). В спеках OpenGL это описано.
Я в курсе. NDC-z тоже линейно:
Изображение
о чём сказано всё в той же GLSpec.

Я на тему, где тебе нужна точность, превышающая rcpps?
+ Для z-буфера и теста глубины достаточно NDC-z, которое сразу линейно.
+ Для текстурирования rcpps вроде хватает.
+ Для восстановления глубины для тумана - вроде тоже.
+ Для восстановления глубины для мягких частиц - вроде тоже (благо на границах они уходят в прозрачность).

#235
18:40, 26 июля 2018

А подскажете ли, где-бы почитать, как сделать текстуры - как на PlayStation первой были?

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

#236
23:09, 26 июля 2018

Truthfinder
FordPerfect
Может я конечно уже наглею, но хотелось бы спросить у вас каких-нибудь хороших статей по многопоточному программированию.

P.S Если это уже слишком будет, то прошу прощения, могу удалить пост.

#237
0:28, 27 июля 2018

Vlad2001_MFS
> хороших статей по многопоточному программированию
Во-во, если кто знает - мне тоже интересно.

#238
(Правка: 0:48) 0:46, 27 июля 2018

Про PlayStation.
Сами текстуры обыкновенные. Если вопрос, как текстурирование сделать как в PlayStation, так там не то что Z-буфера нету (для перспективной коррекции он нафиг не нужен), а вообще Z ни в каком виде на видеокарту не передаётся. И субпиксельной точности нет, т. е. на корточку все треугольники приходят с целочисленными вершинами.
https://gamedev.ru/flame/forum/?id=231027#m1

Для того чтобы воспроизводить эффект, да - использовать аффинное текстурирование. Т. е. текстурные координаты меняются линейно в экранном пространстве, без перспективной коррекции. Другими словами для интерполяции (цветов, текстурных координат и т. д.) используются сами (экранные) барицентрические координаты (area coordinates в терминах GLSpec), а не восстановленные из них перспективной коррекцией интерполяционные координаты.
Его можно попробовать добиться от OpenGL, сказав

glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_FASTEST);
но это чисто рекомендация.
Ну и вершины к целочисленным координатам прибить - это уж как-то сами.

#239
15:50, 27 июля 2018

FordPerfect
> Я на тему, где тебе нужна точность, превышающая rcpps?

В q1 был z-fighting.

Страницы: 115 16 17 1821 Следующая »
ПрограммированиеФорумГрафика