Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2009, 09:03   #11
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Понял. Спасибо!
Shadow_1329 вне форума Ответить с цитированием
Старый 16.08.2009, 11:08   #12
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Есть вопрос. Как реализовать тени от обьетов и подсветку на них? Я понимаю что нужно использовать альфа канал и получить доступ к каждому пикселю. Но каким образом это сделать?
Shadow_1329 вне форума Ответить с цитированием
Старый 16.08.2009, 15:16   #13
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Тени сделать можно. Первый вариант делать динамические тени (как реальные, изменяются в зависимости от источников света и прочего) с помощью специальных движков или писать на DX,OpenGL (как я понимаю этот вариант не устраивает). Вот пример:
www.vadim-burenkov.narod.ru/images/DXLight.bmp

Второй вариант намного проще: делать статические тени. Берем текстуру (на худший вариант просто черный спрайт) и рисуем прямо на приготовленный кадр. Сила освещения определяется прозрачностью черной текстуры (чем прозрачнее тем светлее). Вот как эта система выглядит в игре:
https://www.vadim-burenkov.narod.ru/...priteLight.jpg
Но этот вариант как я понимаю также не подходит так как canvas не поддерживает возможность рисовать спрайт с определенной степенью прозрачности.

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

Последний раз редактировалось Вадим Буренков; 16.08.2009 в 15:18.
Вадим Буренков вне форума Ответить с цитированием
Старый 16.08.2009, 15:40   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
canvas не поддерживает возможность рисовать спрайт с определенной степенью прозрачности.
можно смешивать цвета(осветлять затемнять)
Код:
Других вариантов не знаю, но может с помощью ассемблера можно как нибудь рисовать на канвасе с прозрачностью.
надо использовать тогда 32битные битмапы+чистое API(у нас в разделе Дельфи были примеры)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.08.2009, 17:17   #15
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Ну 32 битные это легко. Я понял что canvas не поддерживает возможность рисовать спрайты с определенной тепнью прозрачности и я перешел на BitBlt(). Я понимаю что нужна поддержка альфа-канала. Но как его подключить? И как сделать чтобы в определенном месте была тень и свет?
Shadow_1329 вне форума Ответить с цитированием
Старый 16.08.2009, 17:46   #16
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Создавай PNG текстуры, считывай их в массив PChar, причем отдельно текстуру, отдельно ее альфа-канал, задавай в памяти шаг копирования, отрисовывай ассемблерной вставкой. Все тени будут, а свет можно задавать обработкой текстуры перед отрисовкой в буфер. Такие сложности устраивают?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 16.08.2009, 17:55   #17
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Ээээ... А поподробнее...
Shadow_1329 вне форума Ответить с цитированием
Старый 16.08.2009, 18:10   #18
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Вот тут подробное описание: http://programmersforum.ru/showthread.php?t=338&page=65 пост 644 и 645.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 16.08.2009, 18:32   #19
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Ох е..... ..ть! Ладно оставлю лучше тени пока...=) Займусь алгоритмами и простой прорисовкой=)
Shadow_1329 вне форума Ответить с цитированием
Старый 16.08.2009, 18:34   #20
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры РПГ (RPG) vzov Qt и кроссплатформенное программирование С/С++ 18 13.05.2009 03:12
Помогите в создании броузерной РПГ emogot Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 06.02.2009 09:17
Магический квадрат v 0.01 (РПГ демо) Phoenix77 Gamedev - cоздание игр: Unity, OpenGL, DirectX 23 03.09.2008 02:20
Доработка Онлайн игры в стиле РПГ Splo1teR Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 31.07.2008 19:19
РПГ игра Принц Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 10.06.2008 15:57