Обсуждение:OTOY

message: ;Источник: 
Массивы данных из сцен с демонстрациями Руби и урбанистического пейзажа содержат до 64 слоёв данных на воксель, включая диффузное альбедо, значения отражений Фреснеля, данные освещённости, UV-координаты (до 8-ми наборов), карты нормалей. Для статичных сцен используются поисковые векторы для 1-20 скачков света от до 252 равномерно распределённых точек зрения (важно отметить, что эти данные всега являются 100%-но опциональными, так как рейтрейсер может сделать это процедурно в случае, если воксели находятся близко и точность отражений является более важной, чем скорость; однако, с закэшированными данными о коэфициентах отражений вы можете увидеть, как сцена рендерится со скоростью 100-1000 сек К/с когда сцена не меняется.)
The datasets from the BCN and Ruby city scenes contain up to 64 data layers per voxel, including diffuse albedo, fresnel reflectance values, irradiance data, UV coordinates (up to 8 sets), normals, and, for static scenes, look up vectors for 1-20 bounces of light from up to 252 evenly distributed viewpoints (it is important to note that this data is always 100% optional, as the raycaster can do this procedurally when the voxels are close and reflection precision is more important than speed; however, with cached reflectance data, you might see the scene rendering at 100s-1000s of fps when the scene isn’t changing).
Комментарий по поводу «трасировка лучей против растеризации»: усиливая ствол дерева в демонстрации Fincher’s Bug Snuff до 28 миллионов полигонов с использованием аппаратного тесселятора оказывается быстрее, чем рендеринг 28 миллионов воксельных точечных облаков для этого объекта. Таким образом есть некий рубеж, который составляет примерно 100 миллионов полигонов, когда воксели работают быстрее, чем растеризация. По крайней мере на нашем движке, на R7xx GPU, с импользованием рейкастинга высокой точности в разрешении 1280×720. Ниже этого значения традиционная растеризация с использованием аппаратного тесселятора видится более быстрой для единичного порта просмотра.
A note on raytracing vs. rasterization: amplifying the tree trunk in Fincher’s Bug Snuff demo to 28 million polys using the GPU tessellator turned out to be faster than rendering a 28 million voxel point cloud for this object. So there is a threshold where voxels become faster than rasterziation at about 100 million polys. At least in our engine, on R7xx GPUs, using full precision raycasting at 1280×720. Below that point, traditional rasterization using the GPU tessellator seems to be faster for a single viewport.
Движок может конвертировать полигональную сетку, состоящую из 1-го миллиона полигонов, у воксельные данные за 1/200-ую секунды на R770, что равно 60-ти кадрам в секунду на R600 и 8800 GTX. Это полезно для выпечки плотных статичных сцен, которые однажды или нечасто генерируются на GPU. Вот почему демонстрации OTOY требуют, чтобы тесселятор на GPU был эффективным.
The engine can convert a 1 million poly mesh into voxel data in about 1/200th second on R770 (60 fps on R600 and 8800 GTX). This is useful for baking dense static scenes that are procedurally generated once, or infrequently, on the GPU. That is why some of the OTOY demos require the GPU tessellator to look right.
Жесткие тени в OTOY были сделаны с использованием растеризации ещё до того времени, как разработчики получили R770 в мае. Теперь жесткие тени, как и отражения, могут быть вычислены при помощи рейкастинга, хотя теневые маски всё ещё очень полезны, и рейкастинг с воксельными данными может всё ещё выдавать ступенчастость ().
Hard shadows in OTOY were done using rasterization until we got R770 in May. Now hard shadows, like reflections, can be calculated using raycasting, although shadow masks are still very useful, and raycasting with voxel data can still give you aliasing.
Мы можем использовать рейкастер вместе с данными, сгенерированными процедурно. При помощи алгоритма Perlin noise генерируются ландшафт и тучи, объекты могут генерироваться сплайнами и т.д. На Siggraph 2008 была показана демонстрация с Руби на улице, которая вычислялась в режиме реального времени. Она была независима от разрешения (наподобии векторных объектов в Flash), таким образом возможно бесконечно сильно приближать «картинку», но ступенчастный эффект будет отсутствовать, а тени будут отбрасываться в нормальном режиме.
We can use the raycaster with procedurally generated data (perlin generated terrain or clouds, spline based objects etc.). At Jon Peddie’s Siggraph event, we showed a deformation applied in real time to the Ruby street scene. It was resolution independent, like a Flash vector object, so you could get infinitely close to it with no stair stepping effects, and likewise, the shadow casting would work the same way.
Воксельные данные сгруппированы в грубом эквиваленте „треугольных пакетов“ (которые могут быть проиндекированы и распределены в группы по объектам или по материалу). Это позволяет нам работать с подмножествами воксельных данных точно так же, как и с традиционной полигональной сеткой.
The voxel data is grouped into the rough equivalent of ‘triangle batches’ (which can be indexed into per object or per material groups as well). This allows us to work with subsets of the voxel data in the much the same way we do with traditional polygonal meshes.
Отражения в видео марта 2007 года ‘Treo’ являются в около 1/1000 раза медленней/низкокачественней, чем наш теперишний рейкастер, который мы использовали для демонстрационного видео с Руби на R770/R700.
The reflections in the march 2007 ‘Treo’ video are about 1/1000th as precise/fast as the raycasting we now use for the Ruby demo on R770/R700.
Один графический процессор R770 может отрендерить около 100 портов просмотра в качестве и размере, которые были показаны в видео ‘Treo’. Когда сцена полностью состоит из вокселей, количество одновременно активных портов просмотра менее важно, чем общая рендерящаяся площадь для всех возможных комбинаций портов просмотра.
One R770 GPU can render about 100+ viewports at the quality and size shown in the ‘Treo’ video. When scenes are entirely voxel based, the number of simultaneous viewports is less important than the total rendered area of all the viewports combined.
Серверная система рендеринга в настоящее время состоит из 8-ми графических процессоров R770 (всего 8 Gb видеопамяти, 1,5 КВатт на одну серверную станцию).
The server side rendering system is currently comprised of systems using 8x R770 GPUs ( 8 Gb VRAM, 1.5 Kw power per box).
thread_title:  Детальные данные о движке за август 2008 г. (перевод+оригинал)