Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 29.07.2011, 23:43   #1
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,429
Репутация: 1188
По умолчанию Мысли по поводу теней в 2D

Что то я как то раньше даже и не задумывался по поводу реалистичности теней, отбрасываемых объектами в изометрической проекции в 2D. А тут сидел рисовал паровоз с тенями и понял, что получилась то у меня какая-то несуразица. Вот выделил два непонятных для меня момента.
1. Неправильное искажение (а точнее полное отсутствие такового) геометрии отбрасываемой тени. Когда тень, отбрасываемая объектом, падает на другие объекты со сложной геометрией, то и тень тоже должна менять свою геометрию. А как добиться такого на обычных спрайтах с альфой - ума даже не приложу.
2. Неправильное уплотнение пересекающихся теней, отбрасываемых разными объектами. Т.е. тень то должна получаться единой и однородной, а получается, что она темнеет там где не следует.

Ну вот, высказался. У кого какие мысли по этому поводу? Как-то это можно победить в 2D (например на DirectX)?
Миниатюры
Нажмите на изображение для увеличения
Название: Shadow2D.jpg
Просмотров: 74
Размер:	13.4 Кб
ID:	41473  
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 30.07.2011, 02:55   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
Репутация: 156
По умолчанию

1. С плоскими тенями не сделать, не зря же они так называются Надо использовать "теневые объёмы" или "карты теней", но тут нужна геометрия, а 2D не дает геометрию.
2. Двойное наложение можно предотвратить использовав буфер трафарета.
Код:
Device->SetRenderState( D3DRS_STENCILENABLE,	true);
Device->SetRenderState( D3DRS_STENCILFUNC,	D3DCMP_EQUAL);
Device->SetRenderState( D3DRS_STENCILREF,	0x0);
Device->SetRenderState( D3DRS_STENCILMASK,	0xffffffff);
Device->SetRenderState( D3DRS_STENCILWRITEMASK,	0xffffffff);
Device->SetRenderState( D3DRS_STENCILZFAIL,	D3DSTENCILOP_KEEP);
Device->SetRenderState( D3DRS_STENCILFAIL,	D3DSTENCILOP_KEEP);
Device->SetRenderState( D3DRS_STENCILPASS,	D3DSTENCILOP_INCR); // increment to 1
// Рисуем тень 1
// Рисуем тень 2
Device->SetRenderState( D3DRS_STENCILENABLE,    false);
An1ka вне форума   Ответить с цитированием
Старый 30.07.2011, 13:08   #3
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,429
Репутация: 1188
По умолчанию

Вот спасибо!
Доделаю рендер в текстуру, надо будет с трафаретами потренироваться.
Хотя мне кажется, на производительности сильно скажется такое рисование, не?
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 30.07.2011, 15:06   #4
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

Ulex, без лишних хлопот и потери производительности с тенями в 2D не разобраться. Я пошел по пути разумного создания карт, где стараюсь просто не ставить объекты так, чтобы они вызвали визуальное нарушение физики, ...по возможности. А персонаж пока в тени дерева так и отбрасывает свою тень, поскольку она сразу в анимации.
__________________
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несвоевременные мысли. (М. Горький) Rapid Свободное общение 11 01.12.2010 18:32
Чужие мысли в тему mihali4 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.01.2008 15:54
Мысли Elm0 Свободное общение 0 23.06.2007 21:42


08:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.