Отображение теней webgl gl.DEPTH_COMPONENT

Эй, я пытаюсь реализовать отображение теней в webgl, используя этот пример: tutorial

Что я пытаюсь сделать, это

инициализировать текстуру глубины и фреймбуфер. нарисуйте сцену в этот фреймбуфер с помощью простого шейдера, затем нарисуйте новую сцену с блоком, который имеет текстуру глубины в качестве текстуры, чтобы я мог видеть карту глубины с помощью другого шейдера.

Я думаю, что я выгляжу нормально с colortexture, но не могу заставить меня работать с depthtexture, он весь белый.

я поместил код в dropbox: исходный код большинство находится в индексе файлов html webgl_all js объекты js

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

Очень надеюсь, что кто-то может мне помочь.

привет из Дании


person user2374625    schedule 12.05.2013    source источник
comment
Не настоящий ответ, но это то, что я заметил, просматривая ваш код (еще не полностью): 1: вы, кажется, сбрасываете значения для унифицированных местоположений каждый кадр, что не обязательно, сделайте это один раз а потом пусть будут. 2: вы инициализировали webGL только с экспериментальным webGL, что сделало его невозможным для меня без изменений (пришлось изменить его на webGL, используя firefox 27.0). Вероятно, последует дальнейший анализ кода, а также ответ, если я его найду.   -  person Ferdi265    schedule 11.02.2014


Ответы (1)


Это может иметь несколько причин:

  • Для обычных настроек ближней и дальней плоскостей нормализованные значения глубины будут достаточно высокими, чтобы казаться полностью белыми для большей части сцены, даже если на самом деле они не идентичны (помните, что текстура глубины имеет точность не менее 16 бит, в то время как ваша вывод на экран имеет только 8 бит на цветовой канал, поэтому текстура глубины может казаться полностью белой, даже если ее значения не идентичны.)
  • В некоторых настройках (например, OpenGl для настольных ПК) текстура может отображаться полностью белой, когда она неполная, то есть когда фильтрация текстур настроена на использование MIP-карт, но не все уровни MIP-карт были созданы. Это может быть то же самое с WebGl.
  • Возможно, вы столкнулись с ошибкой реализации WebGl в браузере.
person Dreamer    schedule 31.08.2014