Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Stepan Polovnikov                    2:5056/16.47   12 May 2001  17:02:59
 To : Eugene Kilachkoff
 Subject : realtime raytracing
 -------------------------------------------------------------------------------- 
 
 
 >> обьектах подлежащих детализации сосредотачивать рендер, т.е. делать 1x1 а
 >> там где можно, рендерить 2x2 или 4x4... что с успехом делает heaven7.
 EK> Вот это уже идея. Это почти то же самое, чего я и хотел. 2all: народ,
 EK> натолкните меня на мысль: как конкретно это реализовать. Кривизну
 EK> поверхности там оценивать, количество объектов в данном участке
 EK> пространства или еще чего ?
 
     Ковырял rubicon. Там реализован слудующий алгоритм (возможно adaptive grid).
 
 Сразу об ограничениях:
 1. Исчезание плоских объектов (в проекции экрана) или маленького размера.
 2. Максимальное число объектов 32.
 
 Hапример. Дано разрешение трассировки 640х480. Создается массив претрассировки
 162х122 32битных слов (соответствует числу объектов), каждый бит которого
 определяет наличие пересечения с одним из 32 объектов. Претрассируются лучи с
 шагом 4 на наличие пересечений.
 
 DWORD PreTraceArray[162,122]
 
 ; претрассировка
 for(y=1;y<121;y++)
    for(x=1;x<161;x++)
      if (obj=Intersect((x-1)*4,(y-1)*4)) ; obj-номер объекта
          SetBit(x,y,obj)         ; установка бита в массиве
          SetBit(x-1,y,obj)       ; претрассировки PreTraceArray
          SetBit(x,y-1,obj)
          SetBit(x-1,y-1,obj)
 
 ; трассировка
 for(y1=1;y<121;y++)
    for(x1=1;x<161;x++)
       for(y0=0;y<4;y++)
          for(x0=0;x<4;x++)
             x=(x1-1)*4+x0
             y=(y1-1)*4+y0
             mask=PreTraceArray[y1,x1]
             if (mask==0)
                 ; в текущей клетке объектов нет - цвет фона
                 ; т.е. 4х4 расчетов пересечения делалось 1 раз
                 SetColor(x,y,Background)
             else
                 ; в TraceRay проверка пересечений только
                 ; для объектов в маске mask
                 SetColor(x,y,TraceRay(x,y,mask)) 
 Bye!
 --- GoldED+/W32 snapshot-2001.02.24
  * Origin: NETMAIL (2:5056/16.47)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: realtime raytracing   Eugene Kilachkoff   07 May 2001 12:22:39 
 realtime raytracing   Alex Astafiev   08 May 2001 11:18:10 
 realtime raytracing   Edik Ryzhov   10 May 2001 10:07:03 
 Re: realtime raytracing   Eugene Kilachkoff   11 May 2001 18:18:23 
 realtime raytracing   Andrey Romanov   12 May 2001 08:28:35 
 realtime raytracing   Stepan Polovnikov   12 May 2001 17:02:59 
 realtime raytracing   Alex Astafiev   16 May 2001 16:40:21 
 realtime raytracing   Edik Ryzhov   14 May 2001 17:07:35 
 realtime raytracing   Stepan Polovnikov   15 May 2001 21:12:00 
 realtime raytracing   Alex Astafiev   17 May 2001 23:28:40 
 realtime raytracing   Edik Ryzhov   22 May 2001 14:49:56 
Архивное /ru.algorithms/223903afd3c13.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional