![]() |
Ответ: [TrueHorror] - разработка
Можно попробовать даже Self-Shadowed Radiosity Normal Mapping. В игре чел ходит с фонарём или зажигалкой по темной пещере так что свет падает под острым углом к поверхности, так что самозатенение бампа весьма кстати.
Проблема только в том что для генерации нужны также и карты высот, а Wegox делает сразу лоу-поли и ищет подходящие нормал-карты. Найти соответствующие друг-другу нормал-карты и карты высот и так чтобы они подходили к общей геометрии не так-то просто. Применение эффекта с неправильными картами скорее только ухудшит общий результат рендеринга. Цитата:
|
Ответ: [TrueHorror] - разработка
Вложений: 8
Появилось еще немного времени на игрушку. Недавно скачал юнити 5, поковырял новый гуй, и понял что хочу такой же. Действия кнопочек\слайдеров\радиокнопок выполняются через делегаты, но в цпп нет делегатов. Пришлось запилить.
Код:
class ruIContainer { Код:
... где-то внутри класса Menu Немного скриншотов, графон в гуй не завезли - и скрины заболели джпегом. Кстати последние скрины с исправленным хдр и без него. |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Не понял вопрос. Модальное "окно" это на скрине в менюшке по центру. Фокуса у "окон" все равно нет - ибо это не окно, в привычном понимании. Ну если фокус слетит с главного окна приложения, то перс все равно будет поворачиваться и мышка в меню будет ездить. Чтобы это убрать, мне надо выпилить DirectInput из движка и юзать сообщения окна и RawInput для получения скорости мыши.
|
Ответ: [TrueHorror] - разработка
Речь идёт об окнах GUI. Модальным называется окно, которое блокирует работу приложения, пока от пользователя не будет получен ответ. Это значит, что пока пользователь не нажмёт Да или Нет (или другую доступную кнопку), то он не сможет переключиться на любое другое окно (или в случае игры наверное и продолжить игру не сможет -- хотя тут на усмотрение разработчика). В случае с примером на скрине, главное меню должно быть заблокировано.
|
Ответ: [TrueHorror] - разработка
Нет, меню не блокируется, и не надо - например, жмешь Новая игра, а потом вспоминаешь что хочешь загрузиться, и можно смело жать Загрузить игру. Про то что такое модальное окно я знаю, хз почему назвал то окошко модальным.
|
Ответ: [TrueHorror] - разработка
Возможно в данном конкретном случае блокировать и не надо, но этот механизм нужен для структуризации интерфейсов. Если для каждого окна прописывать что блокируется а что нет, то по мере увеличения количества окон код будет увеличиваться в геометрической прогрессии. Я подумал что раз ты начал делать делегаты, то видимо хочешь создать какой-то задел, чтобы в более сложных играх, например RPG создавать сложные интерфейсы, тогда понабиться универсальный подход, предусматривающий работу с перекрытием и иерархией окон, не усложняющий и не увеличивающий размер кода в зависимости от количества окон. Такой же как с делегатами -- они же теперь универсальные и работают с любым количеством действий.
|
Ответ: [TrueHorror] - разработка
Действительно, надо будет сделать перекрытие и блокировку окон.
|
Ответ: [TrueHorror] - разработка
Понадобились освещаемые частицы. И сразу затык с блендингом словил. Мне нужно отрендерить частицы с аддитивным блендингом для правильного освещения, и в то же время нужно чтобы частицы использовали альфа канал. Если я рендерю с аддитивным - то альфа не учитывается, если учитываю альфу( D3DRS_SRCBLEND = D3DBLEND_SRCALPHA, D3DRS_DESTBLEND = D3DBLEND_INVSRCALPHA ) - то с каждым новым источником света частицы становятся темнее. Что я делаю не так? Может рисовать частицы в текстуру и потом их уже аддитивно рендерить на экран?
|
Ответ: [TrueHorror] - разработка
Попробуй srcBlend = srcAlpha, destBlend = one. Типа умножил цвет на альфу и сложил с экраном.
|
Ответ: [TrueHorror] - разработка
http://techblog.floorplanner.com/ren...rred-pipeline/
Для частиц самое то, только надо их разбивать на не пересекающиеся группы, и рисовать каждую группу за раз. |
Ответ: [TrueHorror] - разработка
С таким блендингом работает, но прозрачность частицы почему-то зависит от освещенности.
Код шейдера http://pastebin.com/h6qP2BKp |
Ответ: [TrueHorror] - разработка
Цитата:
Дым всякий надо рисовать с обычным блендом. Цитата:
|
Ответ: [TrueHorror] - разработка
Ну так аддитивный мне нужен для множества лайтов.
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
производительность конечно очень сомнительная будет. если бы ты делал tiled деферед, можно было бы освещать альфу так же, как и неальфу. дешёвый вариант, который иногда вполне канает: считаешь среднее освещение приходящее в середину каждого альфа-объекта в виде сферической гармоники или просто с 6 сторон, типа сумма saturate(dot(lightN, vec)), где vec = float3(1,0,0), float3(-1,0,0), float3(0,1,0) итд. Потом рисуешь форвардом альфа-объекты, применяя одну гармонику/куб света на весь объект. |
Часовой пояс GMT +4, время: 02:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot