ФОРУМ

Список разделов форума => Статьи => : Robot 13 Jun 2010 - 23:18:52



: Моделирование стеклянных поверхностей
: Robot 13 Jun 2010 - 23:18:52
Моделирование стеклянных поверхностей
Сергей Резник "Sergio"

Пошагово описывается процесс моделирования и рендеринга гладких
полированных стеклянных предметов на базе OpenGL.


http://www.uraldev.ru/articles/id/39 (http://www.uraldev.ru/articles/id/39)


: Моделирование стеклянных поверхностей
: Sergio 14 Jun 2010 - 18:17:28
Вот видео (http://www.youtube.com/watch?v=6rsDcyLhYHs) демки (если у кого не запустится)


: Моделирование стеклянных поверхностей
: Omar2002 15 Jun 2010 - 10:21:05
Да - на рабеоне 5770 корявенько дефолтный режим работает - вечером постараюсь скрины выложить. А в остальном - красота. Помнится когда-то я такие вещи в 4-ой версии 3D Studio Max делал - рендерились по несколько минут.


: Моделирование стеклянных поверхностей
: Sergio 15 Jun 2010 - 16:48:38
На радеонах конечно беда иногда бывает
Но это связанно с тем, что мне просто негде/неначем потестить и подебажить


: Моделирование стеклянных поверхностей
: DikobrAz 15 Jun 2010 - 17:07:05
Вообще, круто и написано понятно)

Запостю картинку с косяками на радеонах(3870 и 5750), может поможет:
[img]http://img810.imageshack.us/img810/6803/scrl.png\" border=\"0\" alt=\"\" /]

В логе только одну ошибку заметил:
RENDER: Set missed uniform receiver_depth for D:\Tutorials\Programming\Demos\Glass Rendering\bin\..\data\shaders\caustic\single_refraction_tex2d.program

По поводу статьи хотел спросить следующее: нельзя ли находить пересечение в post-projection space, чтобы не проецировать и восстанавливать мировые координаты точки на каждой итерации? Вообще, я так понял это численный метод какой-то?

Ещё, думаю, можно было бы пояснить про перестановку строк в проективной матрице, про матрицу перехода между ортогональными базисами чего-нибудь написать)


: Моделирование стеклянных поверхностей
: Sergio 16 Jun 2010 - 02:22:14
Я тоже думал над єтим вопросом. По идее можно еще как-то оптимизировать алгоритм, но я временно не занимаюсь графикой


: Моделирование стеклянных поверхностей
: kore3d 16 Jun 2010 - 12:47:28
На NV GF8600 MGT все ок, а на радеоне HD5670 беда:
[img]http://imglink.ru/pictures/16-06-10/689de9a7340ad4639e11175f9c6a4662.jpg\" border=\"0\" alt=\"\" /]
RENDER: Set missed uniform receiver_depth for C:\Users\kore3d\Desktop\Glass Rendering\bin\..\data\shaders\caustic\single_refraction_tex2d.program


: Моделирование стеклянных поверхностей
: CoderAX27 16 Jun 2010 - 14:51:34
А у меня на Висте сп1 с ATI Mobility Radeon HD 3650 следующие проблемы с вертексными шейдерами:
ERROR: 0:1: " : Version number not supported by GL2
ERROE: 0:2: " : Keyword 'precision' is supported in GLSL 1.3
ERROR: compilation errors. No code generated.


: Моделирование стеклянных поверхностей
: Sergio 16 Jun 2010 - 19:15:15
: CoderAX27
А у меня на Висте сп1 с ATI Mobility Radeon HD 3650 следующие проблемы с вертексными шейдерами:
ERROR: 0:1: " : Version number not supported by GL2
ERROE: 0:2: " : Keyword 'precision' is supported in GLSL 1.3
ERROR: compilation errors. No code generated.

Нужен OpenGL 3.2 (GLSL 1.5)


: Моделирование стеклянных поверхностей
: Albert 17 Jun 2010 - 12:28:34
Ух ты, ссылка на эту статью появилась на 1-ой странице сайта OpenGL.org (http://www.opengl.org/)
 


: Моделирование стеклянных поверхностей
: Sergio 17 Jun 2010 - 14:28:14
Нифига себе!!!!!  


: Моделирование стеклянных поверхностей
: Sergio 17 Jun 2010 - 14:28:14
Интересно, а кто опбликовал новость?


: Моделирование стеклянных поверхностей
: keYMax 17 Jun 2010 - 15:44:54
За нами следит большой брат  

  сами не могут в свой сдк написать нормальные примеры так вот тырят отовсюду с нета.

Кстати в связи с тем что на мак стали писать много игр, наверняка вырасте популярность опена как языка для разработки игр, кто-то считает также как и я?


: Моделирование стеклянных поверхностей
: Albert 17 Jun 2010 - 16:14:13
: Sergio
Интересно, а кто опубликовал новость?
Это не я.    

Хотя надо было бы послать туда новость самому.
В следующий раз будет что-нибудь про OpenGL, дак пошлю туда - может примут...


: Моделирование стеклянных поверхностей
: kore3d 17 Jun 2010 - 17:40:59
: keYmax
Кстати в связи с тем что на мак стали писать много игр, наверняка вырасте популярность опена как языка для разработки игр, кто-то считает также как и я?
На маках рынок потребителей игр, имхо, отсутствует. Ну а, если где-то в САПРах огл, то он там так и останется. Т.е. популярность вряд ли вырастет.


: Моделирование стеклянных поверхностей
: Sergio 17 Jun 2010 - 18:25:33
Во всяком случае кроме мака есть еще линукс и iOS, а там потребителей игр навалом. Имхо будущее все-таки за OpenGL. Хотя бы потому, что он(а) кроссплатформенный(ая)


: Моделирование стеклянных поверхностей
: DikobrAz 17 Jun 2010 - 18:39:13
: Sergio
Во всяком случае кроме мака есть еще линукс и iOS, а там потребителей игр навалом. Имхо будущее все-таки за OpenGL. Хотя бы потому, что он(а) кроссплатформенный(ая)
Мне кажется, сейчас реально вырастить популярность OpenGL могут только мобильные платформы. В прицнипе, у OpenGL ES и так неплохо идут дела, а сейчас ещё линуксовые Android, MeeGo и др. Может WebGL внесет свою лепту, браузерки сейчас очень популярны.


: Моделирование стеклянных поверхностей
: kore3d 18 Jun 2010 - 18:35:37
: Sergio
будущее все-таки за OpenGL. Хотя бы потому, что он(а) кроссплатформенный(ая)
в целом, разницы нету - имхо, API не самое критичное место, железо решает


: Моделирование стеклянных поверхностей
: Sergio 18 Jun 2010 - 18:56:08
Ну все-таки одно дело сразу писать рабочую программу на OpenGL либо портировать DirectX на тот же мак. Ксати, а что решает железо?


: Моделирование стеклянных поверхностей
: Mikle 19 Jun 2010 - 18:46:50
Хорошая статья, лидер наметился
Заметил грамматические ошибки:
В самом начале:
[!--quoteo--][div class=\'quotetop\']Цитата[/div][div class=\'quotemain\'][!--quotec--]Это означает что высококачественный (фотореалистичный) рендеринг переноситься из offline в реальное время. [/quote]
Здесь не нужен мягкий знак в слове "переносится", это не инфинитив.

Та же ошибка при рассмотрении наложения фотонной карты:
[!--quoteo--][div class=\'quotetop\']Цитата[/div][div class=\'quotemain\'][!--quotec--]Для этого нам понадобиться сделать три дополнительных прохода отрисовки.[/quote]

После рассмотрения геометрического шейдера:
[!--quoteo--][div class=\'quotetop\']Цитата[/div][div class=\'quotemain\'][!--quotec--]Теперь можно посмотреть наложить её на объект и посмотреть, что же из этого выйдет.[/quote]
Первое "посмотреть" лишнее.

В демке я не заметил фильтрации текстуры каустиков - выглядят каустики так, как на первых скринах, без фильтрации. GF 9600 GT, WinXP SP3, дрова последние.


: Моделирование стеклянных поверхностей
: Sergio 20 Jun 2010 - 04:03:16
С мягкими знаками у меня всегда проблеммы были - плохо учил русский язык в школе, на уроках смеялись в основном  
По идее фильтрация должна быть включена. Ща гляну...


: Моделирование стеклянных поверхностей
: Mikle 20 Jun 2010 - 11:06:50
Хорошая статья, я до этого не знал, что динамические каустики делаются рендером в текстуру массива точек. Или есть, всё же, вариант с непрерывной текстурой, чтобы не нужна была фильтрация?
Да и сама фильтрация, по идее, должна иметь радиус, зависимый от густоты точек. Что если рендерить в текстуру с AutoGenMipMap и каким-то образом делать выборки из неё, используя LOD? Получится фильтрация, зависимая от густоты точек.