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

Динамические тени, основаные на CubeMap (комментарии) (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
16:54, 19 июня 2009

На самом деле, упаковка вещественного числа в четыре компоненты - это довольно старый приём и я встречал
его в других демках ещё давно.. И здесь на форуме где-то видел описание способов таких упаковок..
Мне кажется, это быстрее, чем использование современных форматов 16, 16F, 32F.. Последний из них (32F) вообще
практически бесполезен в силу сильного падения FPS при его использовании...


#31
16:58, 19 июня 2009

Кстати, на картах NVIDIA в ASM-шейдерах (ARB_vertex/fragment_program) есть инструкции
по упаковке данных...

#32
17:12, 19 июня 2009

DEN 3D
> Кстати, на картах NVIDIA в ASM-шейдерах (ARB_vertex/fragment_program) есть
> инструкции
> по упаковке данных...

NV_fragment_program

#33
17:18, 19 июня 2009

Мне тут недавно один человек сказал,что depthTexture это убогий пережиток прошлого и им никто не пользуется ... ( для теней )

#34
17:23, 19 июня 2009

innuendo

А чем теперь принято пользоваться он сказал?

#35
17:28, 19 июня 2009

innuendo
> Мне тут недавно один человек сказал,что depthTexture это убогий пережиток
> прошлого и им никто не пользуется ... ( для теней )

А мне один человек сказал, что innuendo тролль... ;)

#36
17:31, 19 июня 2009

.Scotina
> А чем теперь принято пользоваться он сказал?

Имелось ввиду, хардварной depthTexture

А он сказал, только R32F или R16F

#37
17:32, 19 июня 2009

innuendo
>> NV_fragment_program
Вообще да, хотя в ARB_fragment_program есть такая фича от NV -
NV_fragment_program2_option, включив в ARB-шной программе эту
опцию можно в ней юзать все специфические инструкции NV..

#38
17:34, 19 июня 2009

Executor
> А мне один человек сказал, что innuendo тролль... ;)

Есть маленько :) Постараюсь исправиться

#39
17:41, 19 июня 2009

DEN 3D
> Вообще да, хотя в ARB_fragment_program есть такая фича от NV -
> NV_fragment_program2_option, включив в ARB-шной программе эту
> опцию можно в ней юзать все специфические инструкции NV..

OK. Только это http://www.opengl.org/registry/specs/NV/fragment_program_option.txt

на ATI так и не смог запустить с  NV_fragment_program2_option

#40
17:45, 19 июня 2009

innuendo
>> на ATI так и не смог запустить с NV_fragment_program2_option
Да, это NV :)

#41
21:49, 19 июня 2009

Пытаюсь перевести на с++, но столкнулся с проблемой в создании pBuffer.

Вот код конструктора pBuffer

int PixelFormatAttribs[] = {WGL_SUPPORT_OPENGL_ARB, GL_TRUE,
                                                   WGL_DRAW_TO_PBUFFER_ARB, GL_TRUE,
                                                   WGL_COLOR_BITS_ARB, 24,
                                                   WGL_ALPHA_BITS_ARB, 8,
                                                   WGL_DEPTH_BITS_ARB, 24,
                                                   WGL_DOUBLE_BUFFER_ARB, GL_FALSE, 0};
float FloatAttrib[]={0};

int PixelBufferAttribs[]= {WGL_TEXTURE_FORMAT_ARB, WGL_TEXTURE_RGBA_ARB,
                                                WGL_TEXTURE_TARGET_ARB, WGL_TEXTURE_2D_ARB, 0};

int PFormat[MAX_PFORMATS];
unsigned NumPFormat=0;
HDC tDC;
int tW,tH;

ParentDC = pParentDC;
ParentRC = pParentRC;
Width    = pWidth;
Height   = pHeight;

     tDC = wglGetCurrentDC();

   if(! wglChoosePixelFormatARB(tDC,PixelFormatAttribs, FloatAttrib ,MAX_PFORMATS, PFormat, &NumPFormat))//вот тут получаю по зубам от компилятора
   {
   exit(1);
   }
Handle = wglCreatePBufferARB(tDC, PFormat[0], Width, Height, PixelBufferAttribs);
.
.
.
вобщем получаю access violation 00000000

И еще вопрос, pParentDC и pParentRC - это HDC и HGLRC, которые я использовал при инициализации OpenGl, так?

#42
1:57, 20 июня 2009

wat
теперь я волнуюсь - строка "//вот тут получаю по зубам от компилятора" пытается уйти за "монитор" как в IE 7 так и в FF 3.0.11  :(
только в FF это терпимо - "уходит" только текст
а в IE - весь серый блок "ушел"

ЗЫ. сорри за оффтоп

#43
8:43, 20 июня 2009
BenTech,

И еще вопрос, pParentDC и pParentRC - это HDC и HGLRC, которые я использовал при инициализации OpenGl, так?

По поводу ошибки может быть что wglChoosePixelFormatARB не инициализирован
проверь поинтер на wglChoosePixelFormatARB <> nil ?

После инициалзации основного OpenGL'a , инициализируем PixelBuffer
  FShadowBuffer := TPixelBuffer.Create(256,256,h_dc,h_rc);
и незабываем внести его в список основному OpenGL'у
  wglShareLists(h_RC, FShadowBuffer.RC);


если не получится у тебя перевести , могу сам перевести весь пример под BCC =)

#44
11:49, 20 июня 2009
 gl_FragColor = fract(len);
// p.s.
// Можно конечно и без Fract'a, но так хоть посмотреть можно не градиент синего
// а то, что получилось.
А я вот не согласен. Мне кажется, что fract() тут обязательная функция. Иначе некоторые компоненты могут заклампиться в 1.0, и потеряется точность.
Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.