Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > помогите написать алгоритм построения теней


Автор: Tanyaata 28.2.2009, 15:48
Все сделано

Автор: MetalFan 28.2.2009, 15:54
теней от чего?

Автор: Чупакабро 28.2.2009, 19:45
/удалено

Автор: AntonN 1.3.2009, 15:44
Модератор: Сообщение скрыто.

Автор: Чупакабро 5.3.2009, 20:13
/удалено

Автор: MetalFan 5.3.2009, 22:27
Цитата(Чупакабро @  5.3.2009,  20:13 Найти цитируемый пост)
Где-то около 900 строк получилось.

Монстр!

Автор: Чупакабро 6.3.2009, 14:59
/удалено

Автор: Чупакабро 6.3.2009, 15:20
/удалено

Автор: Чупакабро 6.3.2009, 20:42
/удалено

Автор: Tanyaata 7.3.2009, 17:02
smile Спасибо вам большое, за то что отзываетесь. очень благодарна, буду разбираться, если не пойму, то буду мучать вопросами)))))

Добавлено через 10 минут
а можно узнать где вы взяли теорию по написанию алгоритма. что за алгоритм используется и в каких книгах он написан. Программа использует только GDI-это что такое? сама еще начала разбираться с OpenGL. можно и этот код на нем, если Вам не сложно. Мне обе пригодятся. начну разбираться пока с вашим первым вариантом. Еще раз огромное спасибо

Автор: Чупакабро 7.3.2009, 17:28
/удалено

Автор: Tanyaata 10.3.2009, 18:49
мне бы точно узнать книжки. мне по мимо программы надо оформить теорию. и еще  можно ли изменить программу, чтобы она рисовала, только тень от каркаса куба. 

Автор: Чупакабро 10.3.2009, 20:21
/удалено


Автор: Чупакабро 13.3.2009, 13:43
/удалено

Автор: Tanyaata 14.3.2009, 12:55
Рисование тени от каркаса мне нужно без OpenGL. Алгоритм написан в книжке  Никулина "Компьютерная графика", но там слишком все общее. мне это для диплома нужно. тема у меня Свет в компьютерной графике. Тени, я ничего подобрать не могу. литературы мало, все написано словами, нет нигде четкого алгоритма. причем нужно пользоваться только стандартным интерфейсом, без других технологий. smile 
вот такие у меня проблемы.

Добавлено через 56 секунд
Везде написано, для построения теней модифицируйте алгоритмы удаления невидимых линий и граней

Добавлено через 2 минуты и 58 секунд
Программу запустить удалось, работает.

Добавлено через 4 минуты и 59 секунд
первый ваш алгоритм напоминает описанный алгоритм z-буфера для удаления невидимых граней

Автор: Чупакабро 14.3.2009, 19:20
/удалено

Автор: Чупакабро 14.3.2009, 19:52
/удалено

Автор: Tanyaata 15.3.2009, 12:15
Сначала мне надо построение тени отрезка(как на рис. 1.64), так как эта основа  построений, потом развить это на каркас:
       - построить тень от каркаса куба- на произвольной поверхности(рисуется плоскость и на ней тень), а источник света точечный и должен двигаться.
ну а на конец, я поставлю вашу первую программу, то есть построение тени от 3-мерного объекта.

Добавлено через 3 минуты и 51 секунду
а можно узнать из какого вы города?

Автор: Чупакабро 15.3.2009, 14:42
/удалено

Автор: Чупакабро 15.3.2009, 18:23
/удалено

Автор: Tanyaata 15.3.2009, 20:45
Еще я почитала книгу Роджерс - алгоритмические основы комп. графики. там тоже говорится о модификации алгоритмов удаления невидимых граней для теней. там даже пример есть разобранный.

Добавлено через 49 секунд
а я не сильно Вас загружаю????

Автор: Чупакабро 15.3.2009, 22:34
/удалено

Автор: Tanyaata 16.3.2009, 23:29
Тени

Если положения наблюдателя и источника света совпадают, то теней не видно, но они появляются, когда наблюдатель перемещается в любую другую точку. Изображение с построенными тенями выглядит гораздо реалистичнее, и, кроме того, тени очень важны для моделирования. Например, особо интересующий нас участок может оказаться невидимым из-за того, что он попадает в тень. В прикладных областях — строительстве, разработке космических аппаратов и др. — тени влияют на расчет падающей солнечной энергии, обогрев и кондиционирование воздуха.

Наблюдения показывают, что тень состоит из двух частей: полутени и полной тени. Полная тень — это центральная, темная, резко очерченная часть, а полутень — окружающая ее более светлая часть. В машинной графике обычно рассматриваются точечные источники, создающие только полную тень. Распределенные источники света конечного размера создают как тень, так и полутень: в полной тени свет вообще отсутствует, а полутень освещается частью распределенного источника. Из-за больших вычислительных затрат, как правило, рассматривается только полная тень, образуемая точечным источником света. Сложность и, следовательно, стоимость вычислений зависят и от положения источника. Легче всего, когда источник находится в бесконечности, и тени определяются с помощью ортогонального проецирования. Сложнее, если источник расположен на конечном расстоянии, но вне поля зрения; здесь необходима перспективная проекция. Самый трудный случай, когда источник находится в поле зрения. Тогда надо делить пространство на секторы и искать тени отдельно для каждого сектора.

Для того чтобы построить тени, нужно по существу дважды удалить невидимые поверхности: для положения каждого источника и для положения наблюдателя или точки наблюдения, то есть это двухшаговый процесс. Рассмотрим сцену на рис. 28.1. Один источник находится в бесконечности сверху: спереди слева от параллелепипеда. Точка наблюдения лежит спереди: сверху справа от объекта. В данном случае тени образуются двояко: это собственная тень и проекционная. Собственная тень получается тогда, когда сам объект препятствует пропаданию света на некоторые его грани, например на правую грань параллелепипеда. При этом алгоритм построения теней аналогичен алгоритму удаления нелицевых граней: грани, затененные собственной тенью, являются нелицевыми, если точку наблюдения совместить с источником света.
http://ipicture.ru/[quote]

сли один объект препятствует попаданию света на другой, то получается проекционная тень, например тень на горизонтальной плоскости на рис. 28.1b. Чтобы найти такие тени, нужно построить проекции всех нелицевых граней на сцену. Центр проекции находится в источнике света. Точки пересечения проецируемой грани со всеми другими плоскостями образуют многоугольники, которые помечаются как теневые многоугольники и заносятся в структуру данных. Для того чтобы не вносить в нее слишком много многоугольников, можно проецировать контур каждого объекта, а не отдельные грани.

После добавления теней к структуре данных, строится вид сцены из заданной точки наблюдения. Отметим, что для создания разных видов не нужно вычислять тени заново, так как они зависят только от положения источника и не зависят от положения наблюдателя.

Автор: Чупакабро 17.3.2009, 16:41
/удалено

Автор: Tanyaata 17.3.2009, 19:52
я поняла, для построения теней необходимо 2 этапа:
 - удалить нелицевые грани, когда точку наблюдения совмещают с источником света - собственные тени.
 - для построения проекционных теней необходимо просто построить проекцию всех нелицевых граней. Центр проекции находится в источнике света.
 для удаления невидимых граней можно использовать Алгоритм Роджерса, он более понятный. чем все остальные

Добавлено через 2 минуты и 1 секунду
Пример. Рассмотрим параллелепипед на рис. 28.1a. Он задан точками P1(1, 0, 3.5), P2(2, 0, 3.5), P3(2, 0, 5), P4(1, 0, 5), P5(1, 3, 3.5), P6(2, 3, 3.5), P7(2, 3, 5), P8(1, 3, 5). Параллелепипед стоит на плоскости, заданной точками B1(0, 0, 0), B2(6, 0, 0), B3(6, 0, 6), B4(0, 0, 6). Источник света расположен в бесконечности на прямой, проходящей через P2 и P8. Точка наблюдения находится в бесконечности на положительной полуоси z после поворота сцены сначала на -45o вокруг оси y и затем на 35o вокруг оси x.

Для того чтобы найти собственные тени, необходимо определить нелицевые грани относительно положения источника. Составим матрицу объема параллелепипеда, где R, L, B, T, H, Y обозначают правую, левую, нижнюю, верхнюю, ближнюю и дальнюю грани, если смотреть на преобразованный объект из бесконечности с положительной полуоси z.

Вектор от источника к объекту в однородных координатах:
[E] = P2 - P8 = [1, -3, -1.5, 0].

Скалярное произведение вектора направления к источнику и нелицевых плоскостей дает:

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

Существует несколько способов нахождения проекционных теней. Один из них заключается в том, чтобы перенести и повернуть параллелепипед вместе с плоскостью его основания до совмещения вектора направления на источник с осью z. Источник находится в бесконечности, поэтому ортогональная проекция видимых граней на преобразованную плоскостьоснования дает проекционную грань. Значение z получается подстановкой x- и y-координат вершин преобразованного параллелепипеда в уравнение преобразованной плоскости основания. Затем координаты проекционных теней проводятся к первоначальной ориентации.

Для совмещения вектора падающего из бесконечности вдоль прямой P8P2 света с осью x необходимо:

    * перенести P2 в начало координат;
    * выполнить поворот на 33.69o вокруг оси y, чтобы P4 совпала с осью z;
    * выполнить поворот на 59.04o вокруг оси y, чтобы P8 совпала с осью z.

Объединенное преобразование:

Преобразуя плоскость основания и параллелепипед, получим

Уравнение npeoбразованной плоскости основания найдем методом Ньюэлла:
z = -0.6 y.

Подставляя x- и y-координаты вершин преобразованного параллелепипеда в уравнение плоскости, определим z, что дает проекцию тени на плоскость основания:

Штрих обозначает вершину проекционной тени.

Из положения источника видны только передняя, левая и верхняя грани; они и порождают проекционные тени:
передняя: P3P4P8P7 - P3'P4'P8'P7'
левая: P1P4P8P5 - P1'P4'P8'P5'
верхняя: P7P8P5P6 - P7'P8'P5'P6'

Отметим, что ни одна видимая грань не содержит точку P2; поэтому ее проекция P2' не входит в видимые проекционные тени. Обратным преобразованием, то есть [T]-1, построенные проекционные тени переводятся в исходную ориентацию:

Проекциями теней на плоскость основания будут S3S4S8S7, S1S4S8S5, S7S8S5S6, S4S8S7, S1S4S8S5, S7S8S5S6, а общим контуром — S1S5S6S7S3S4.

Добавлено через 4 минуты и 59 секунд
http://stratum.ac.ru/textbooks/kgrafic/additional/addit28.html - тут пример

Добавлено через 8 минут и 10 секунд
Спасибо Вам  большое, что не оставили меня в беде, что советуете и помогаете.

Автор: Чупакабро 17.3.2009, 22:29
/удалено

Автор: Tanyaata 21.3.2009, 15:24
Моему руководителю важно, чтобы все было по алгоритму, но с программой можете не торопиться, думаю к апрелю можно и написать. А четкого плана она не дает, говорит все сами пишите.

Автор: Чупакабро 21.3.2009, 18:19
/удалено

Автор: Tanyaata 22.3.2009, 13:21
а какой Вы алгоритм используете для удаления невидимых граней

Автор: Чупакабро 22.3.2009, 22:49
/удалено

Автор: Dimonka2 23.3.2009, 12:15
Читаю-читаю и не понимаю, в чём возникает проблема при рисовании теней? В проекции или в создании "мягких" границ?

Проекция считается относительно легко.  Берётся точка источника света, точка на плоскости и нормаль плоскости. И через функцию MakeShadowMatrix() из юнита VectorGeometry проекта GLScene получаем матрицу проекции света. Далее каждый полигон проецируется на плоскость с помощью этой матрицы. Можно даже перемножить матрицу на матрицу проекции на экран и проецировать тень прямо в экранные координаты.

С мягкими тенями всё чуть сложнее. Они рисуются обычно либо в несколько проходов, либо для каждого полигона в отдельности.

Автор: Чупакабро 23.3.2009, 17:24
/удалено

Автор: Dimonka2 23.3.2009, 19:45
Обрезку можно тоже сделать в экраной области. Допустим отрисовать плоскость на которую проецируем тень и использовать её как маску для тени. Клиппинг по границе экрана в большинстве случаев уже сделан, остаётся только обрезать тень по маске плоскости.

На языке Delphi написать проблем вообще нет, если можешь объяснить алгоритм по-русски )).

Меня больше интересуют мягкие тени и способы их быстрого рисования. Может есть какие идеи по этому поводу?

Автор: Tanyaata 23.3.2009, 19:59
А в алгоритме не нужны мягкие тени. и еще вопрос, а какое затенение вы используете на самом объекте?

Автор: Чупакабро 23.3.2009, 22:41
[/удалено

Автор: Dimonka2 24.3.2009, 13:57
Цитата(Чупакабро @  23.3.2009,  22:41 Найти цитируемый пост)
Нужно учитывать время на вылавливание ошибок. У меня на это уходит бОльшая часть времени, см. мою подпись))

у меня больше времени уходит на придумку алгоритма


Цитата(Чупакабро @  23.3.2009,  22:41 Найти цитируемый пост)
То есть использовать что-то вроде буфера трафарета? Это нельзя по условию задачи.

Возможно ты что-то большее знаешь об условиях задачи, в первом посте об использовании масок не сказано ни чего. Причём первое бысторе клипирование можно сделать по прямоугольнику маски (отсеить все полигоны за пределами плоскости), а второе клипирование сделать попиксельно уже по маске (или как ты называешь его "трафарет")


А насчёт мягких теней идей нет или здесь только проекционные тени обсуждаются?

Автор: Чупакабро 24.3.2009, 22:30
/удалено

Автор: Dimonka2 25.3.2009, 13:07
Вот пример теней по описанному мной выше алгоритму (присоединён)

Код показать не могу, его слишком много и он большей частью к тени не относится. Проблема кода #1 нет самозатенения кроме как освещённости по фонгу, #2 алгоритм относительно медленный.

Автор: Tanyaata 26.3.2009, 19:36
Цитата

В смысле? Как одни грани объекта затеняют другие грани того же объекта?


нет, как вы закрашиваете(затеняете) видимые границы куба. у них же тоже цвет меняется в зависимости от источника света? есть плоское затенение, затенение по Фону и затенение по Гуро

Добавлено через 26 секунд
мягких теней мне не надо. в программе

Добавлено через 10 минут и 24 секунды
все-таки вы используете OpenGL???

Добавлено через 12 минут и 54 секунды
Цитата

Там я понаделал кнопок для тестирования разных геометрических алгоритмов. CTRL+левая кнопка мыши - ввод отрезков, SHIFT+левая кнопка мыши - ввод многоугольников


я не заметила этого, не получается, когда нажимаю и кнопок не увидела

Автор: Чупакабро 26.3.2009, 22:38
/удалено

Автор: Dimonka2 27.3.2009, 13:22
Я понял, что мы говорим о совершенно разных вещах. Я говорю о тени, а вы говорите об освещении.


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


Tanyaata, 
Всё рисуется без всякого ускорения, никакого OpenGL/Direct3D не используется

Если нужно просто освещение, то примеров тысячи. Нужно просто нормаль стороны перемножить на направление источника света и взять из результата длину по Z. всё это делается с нуля за 10 минут

Автор: Tanyaata 28.3.2009, 09:28
Ой, простите, открыла первую вашу программу. поэтому и ничего не увидела. А можно узнать какие параграфы вы читаете в Никулине, чтобы начать в теории разбираться

Добавлено через 51 секунду
Цитата

Я понял, что мы говорим о совершенно разных вещах. Я говорю о тени, а вы говорите об освещении.



Мы говорим и о тени и об освещении

Автор: Чупакабро 28.3.2009, 16:21
/удалено

Автор: Tanyaata 28.3.2009, 20:49
начала я его читать, да уж, своеобразный человек и автор. Факты так изложил, что обычные вещи кажутся непонятными и сложными

Автор: Tanyaata 4.4.2009, 20:25
А куда все пропали?

Автор: Чупакабро 5.4.2009, 12:13
/удалено

Автор: Чупакабро 5.4.2009, 18:54
/удалено

Автор: Tanyaata 5.4.2009, 20:01
Спасибо за это большое, думаю я разберусь в программе, конечно с вашей помощью

Добавлено через 2 минуты и 45 секунд
Что т пока не понятно мне все...все красное и никуда не движется, и нет источника освещения

Автор: Чупакабро 5.4.2009, 21:00
/удалено

Автор: Чупакабро 6.4.2009, 19:16
/удалено

Автор: Чупакабро 6.4.2009, 19:19
/удалено

Автор: pasha08 6.4.2009, 19:58
шутник  smile 

Автор: Tanyaata 7.4.2009, 17:53
Цитата(Чупакабро @ 6.4.2009,  19:19)
Управление: wasd + мышь (тьфу, это в project origin, а не в project1)

я это не поняла.
И на данной стадии рисуется пока квадрат, а не куб

А так давайте разбираться. Думаю я пойму все

Добавлено через 57 секунд
По крайней мере очень надеюсь на это smile 

Автор: Чупакабро 7.4.2009, 20:51
/удалено

Автор: Tanyaata 7.4.2009, 21:21
вот поэтому и думала, что квадрат.)))

Автор: Dimonka2 8.4.2009, 12:12
Цитата(Чупакабро @ 7.4.2009,  20:51)
Сегодня не успел толком ничего сделать, работал до 18:00, так что обновленный результат выложу завтра (8 апреля).
Но куб и тень от него рисуются уже сейчас. Может вы опять не ту программу запустили?
Завтра надеюсь решить проблему с определением принадлежности отрезка полигону - процедура не всегда работае правильно, поэтому тень при некоторых положениях куба и источника света исчезает.
Кстати, крутить куб на кнопки q и e.

Смотрел на результат и плакал. Не понимаю почему у тебя всё так сложно?

Алгоритм должен быть примерно таким:

1. задаёшь источник и плоскость приёмник (это у тебя сделано)
2. Делаешь матрицу проекции источника на плоскость (примеров полно)
3. здесь два варианта либо проецируешь тень прямо на экран, либо создаёшь буфер тени по размеру плоскости
4. Каждый элемент куба проецируешь с помощи матрицы тени на плоскость приёмник, (а затем, в случае проекции на экран, проецируешь на экран)
5. При отрисовке в буфер лишнее само отвалится, при отрисовке на экран можно сделать маску поверхности приёмника и ограничивать тень по экрану и по маске.

Код уж сам допишешь. Думаю, что никакого осбенного клипирования и пересечения делать не нужно.

Ну а сам код - каша.

Автор: Чупакабро 8.4.2009, 16:39
/удалено

Автор: Tanyaata 8.4.2009, 18:54
Цитата(Dimonka2 @ 8.4.2009,  12:12)
Алгоритм должен быть примерно таким:

1. задаёшь источник и плоскость приёмник (это у тебя сделано)
2. Делаешь матрицу проекции источника на плоскость (примеров полно)
3. здесь два варианта либо проецируешь тень прямо на экран, либо создаёшь буфер тени по размеру плоскости
4. Каждый элемент куба проецируешь с помощи матрицы тени на плоскость приёмник, (а затем, в случае проекции на экран, проецируешь на экран)
5. При отрисовке в буфер лишнее само отвалится, при отрисовке на экран можно сделать маску поверхности приёмника и ограничивать тень по экрану и по маске.

Откуда вы взяли этот алгоритм?

Добавлено через 3 минуты и 47 секунд
Чупакабро, а вы не читали другие книги по удалению невидимых граней и проецированию? Может там доступнее написано. Рекомендую Роджерс, Адамс "алгоритмические основы комп. графики". Может эта книга вам поможет.

Автор: Чупакабро 8.4.2009, 19:18
/удалено

Автор: Dimonka2 9.4.2009, 11:25
Цитата(Чупакабро @  8.4.2009,  16:39 Найти цитируемый пост)
Dimonka, мне просто лень пересказывать краткое содержание этой темы. Но суть дела вот в чем: есть одна книжка, где приведен алгоритм. Этот алгоритм не подразумевает вообще ни каких операций с пикселями. Ни каких. Вообще. 

Я всё прекрасно понял по поводу твоего алгоритма. Только вот нигде в теме не сказано, что он должен быть именно таким. Более того, я уверен, что этот алгоритм носит чисто теоретический характер и к реалиям жизни отношения не имеет.

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

Автор: Tanyaata 9.4.2009, 18:58
Конечно, не все равно как. мне нужна теория, по которой написан алгоритм, в каких-то книгах. Просто у Никулина все написано по шагам. а у остальных слова, но более понятным языком))))

Автор: Tanyaata 10.4.2009, 21:10
по Роджерсу конечно все намного понятнее, может реализовать алгоритм из него(Алгоритм Робертса и алгоритм Z- буфера). Хотя Ваша первая программа тоже тени правильно рисует, может описать алгоритм Z-буфера и алгоритм Робертса. и сравнить Ваш первый алгоритм с Z-буфером(получим модификацию этого алгоритма).И, кстати, алгоритм Z-буфера определяет только невидимые грани, а потом нужно еще и их проекцию строить. А если время останется и Никулина можно доделать. Хотя может это уже и перебор будет...Я конечно дико извиняюсь, что не сказала, что мне не принципиально  Никулин, просто я вам его книгу предложила и книгу Роджерса.

Добавлено через 3 минуты
Давайте определимся за выходные, что проще сделать.Какой алгоритм легче написать. просто в вашей программе я так понимаю, объект задается треугольниками, а не точками вершин и ребрами

Добавлено через 4 минуты и 55 секунд
да и в книге роджерса, есть раздел, который называется Тени

Автор: Tanyaata 12.4.2009, 13:44
Ну что проще сделать?

Добавлено через 9 минут и 10 секунд
почитала, на все ответила))))

Автор: Dimonka2 15.4.2009, 18:32
Цитата(Чупакабро @ 10.4.2009,  08:04)
В жизни вообще тени пишутся не на Delphi и не на С, а на HLSL или чем-нибудь подобном (если я ничего не путаю).

На чём только не пишут. 3D Max, Maya и C4D явно на C++ написаны. А Блендер уж тем более на нём.

Цитата
Dimonka2, а как такой алгогритм:
для каждой точки буфера кадра известны координаты x,y,z
проводим отрезок от точки к источнику света и смотрим его пересечение со всеми треугольниками сцены
если пересечение есть, точка затеняется

такой алгоритм я уже реализовал, просто нужно найти под него теорию от извесных авторов))

Это обратная трассировка лучей, а можно делать прямую трассировку:

Для каждого экранного пикселя определять какие полигоны на нём расположены и для тех полигонов в точке пересечения рассчитывать их освещённость. Причём если у тебя нет антиалейзинга (а у тебя его нет), то тебе достаточно сделать буфер полигонов для простоты (в каждой точке экрана записывать номер полигона).

Но всё равно это не наш метод. smile Надо придумать как это сделать очень быстро и с антиалейзингом.

Автор: Hooch 24.5.2009, 10:29
Что-то я не могу разобраться самостоятельно -- может быть, вы поможете?
Работаю с GLScene. Есть произвольный объект -- GLFreeForm, есть точка -- источник света. Есть плоскость -- совпадает с плоскостью XZ (т.е. ее позиция по Y равна нулю и нормаль смотрит вверх). Объект всегда находится полностью над плоскостью. Необходимо просчитать и нарисовать тень. В идеале, конечно -- мягкую. Но пусть для начала будет четкая.

Я решил для тени взять GLPolygon из того соображения, что на него можно натянуть какую-нибудь текстуру с полупрозрачностью и таким образом организовать мягкость тени.

Я перебираю все вершины GLFreeForm, вычисляю проекцию каждой вершины на плоскость (исходя из положения источника света), добавляю получившееся значение в полигон -- и такая фигня, знаете, получается smile Вместо цельной тени получается этакая полосатая зебра. Вероятно, это зависит от очередности вершин. Так или иначе, этот момент сложноват для моего понимания. Я так понял, что в идеале необходимо добавлять в полигон только те точки, которые образуют контур тени -- но как отобрать только эти точки, да еще потом и соединить их в правильном порядке?

Буду очень благодарен, если вы подскажете мне хотя бы чуть-чуть. Может быть, есть другой вариант решения задачи, помимо использования полигона для тени. Тоже буду рад, если подскажете. Но изначальная задача такова, что тень должна рисоваться и при отсутствии аппаратного ускорения на машине (т.е. всякие шейдерные тени отпадают).

Автор: Чупакабро 31.5.2009, 21:20
я не видел программы, но зебра может получаться из-за включенного z-буфера. если это так, то надо выключить его, нарисовать плоскость, нарисовать тень, включить z-буфер

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)