Очень хочется реализовать сабж, в том смысле, что летают объекты по экрану и из левого верхнего угла освещаются, точь в точь как кнопки в windows, только объекты еще и крутятся (исключительно вокруг оси перпендикулярной экрану).
Варианты, которые вижу я:
1) Честно рисовать 3D модели, но качества что-то должного не получается, от пререндеренных моделей отличие видно невооруженным глазом. Придется менять всю идеоологию, а куча кода уже написана.
2) Использовать emboss bump mapping. Я так сделал, сила эффекта какая-то слабенькая, т.е. разницу между нулем и максимумом видно хорошо, а вот всякие плавные переходы так себе. Кроме того, например, на hge или spritecraft не сделаешь, приходится писать dx код, а это отнимает время и привносит баги.
3) Я этого не делал, но можно комбинировать 4 (6, 8) разных пререндеренных спрайта, освещенных с разных сторон. Еслди нет выраженных теней, то должно работать. Попробую в ближайшее время.
Здравствуйте, Рома Мик, Вы писали:
РМ>Очень хочется реализовать сабж, в том смысле, что летают объекты по экрану и из левого верхнего угла освещаются, точь в точь как кнопки в windows, только объекты еще и крутятся (исключительно вокруг оси перпендикулярной экрану).
ИМХО, странное освещение. В принципе, эффект выпуклости делается в самих спрайтах.
Я как-то хотел в самом SpriteCraft'e вертексное освещение сделать, для большего эффекта картинки. Для атмосферности. Но руки не дошли ;(
РМ>3) Я этого не делал, но можно комбинировать 4 (6, 8) разных пререндеренных спрайта, освещенных с разных сторон. Еслди нет выраженных теней, то должно работать. Попробую в ближайшее время.
Здравствуйте, Alexey Chen, Вы писали:
AC>Здравствуйте, Рома Мик, Вы писали:
РМ>>Очень хочется реализовать сабж, в том смысле, что летают объекты по экрану и из левого верхнего угла освещаются, точь в точь как кнопки в windows, только объекты еще и крутятся (исключительно вокруг оси перпендикулярной экрану).
AC>ИМХО, странное освещение. В принципе, эффект выпуклости делается в самих спрайтах.
Здравствуйте, Alexey Chen, Вы писали:
AC>ИМХО, странное освещение. В принципе, эффект выпуклости делается в самих спрайтах.
Объекты крутятся. Как ни странно многие игры (например, astrogeddon из недавнего) делают эффект выпуклости в самих спрайтах, а потом эти спрайты спокойно себе вращают. Мне лично очень глаз режет. У меня так не будет.
AC>Я как-то хотел в самом SpriteCraft'e вертексное освещение сделать, для большего эффекта картинки. Для атмосферности. Но руки не дошли ;(
А толку от вертексного-то? Придется модельки делать, а не спрайты...
РМ>>3) Я этого не делал, но можно комбинировать 4 (6, 8) разных пререндеренных спрайта, освещенных с разных сторон. Еслди нет выраженных теней, то должно работать. Попробую в ближайшее время. AC>Когда попробуешь, напиши, плиз, что получилось.
Вот в ближайшие выходные и попробую, или даже раньше, если получится. Эксперименты в фотошопе проходят успешно.
Рома Мик пишет: > AC>Я как-то хотел в самом SpriteCraft'e вертексное освещение сделать, для большего эффекта картинки. Для атмосферности. Но руки не дошли ;( > А толку от вертексного-то? Придется модельки делать, а не спрайты...
Ну когда игра — платформер, и свет используется не для выражения выпуклости, а для
создания атмосферы, то вполне можно спрайт натягивать на более мелкую сетку и освещять её
с учётом расположенных на сцене источников света. Сцена приобретает эфеект глубины и
атмосферу таинственности.
> РМ>>3) Я этого не делал, но можно комбинировать 4 (6, 8) разных пререндеренных спрайта, освещенных с разных сторон. Еслди нет выраженных теней, то должно работать. Попробую в ближайшее время. > AC>Когда попробуешь, напиши, плиз, что получилось. > Вот в ближайшие выходные и попробую, или даже раньше, если получится. Эксперименты в фотошопе проходят успешно.
Ты только о результатах написать не забудь. Желательно с шотами. Жутко интересно что
получится.
Я бы посоветовал одну вещь, но я ведь Дэльфин . Ну да ладно: в общем в компоненте UnDelphiX у объекта TDirectDrawSurface есть такая функция DrawAdd: вывод спрайта с растровой операцией + альфой. Можно в Фотошопе сделать Lens Flare и выводить его потом этой функцией — получается эффект освещения.
Здравствуйте, HPR, Вы писали:
HPR>Здравствуйте, Рома Мик, Вы писали:
HPR>Я бы посоветовал одну вещь, но я ведь Дэльфин . Ну да ладно: в общем в компоненте UnDelphiX у объекта TDirectDrawSurface есть такая функция DrawAdd: вывод спрайта с растровой операцией + альфой. Можно в Фотошопе сделать Lens Flare и выводить его потом этой функцией — получается эффект освещения.
Собственно это еще один эффкт, блики. С бликами тоже не все так просто, потому что перед тем как нарисовать, надо вычислить где рисовать. Но это я уже сделал.
Здравствуйте, Hacker_Delphi, Вы писали:
H_D>Здравствуйте, Рома Мик, Вы писали:
H_D>А не судьба спрайтов для всех вращений заранее сделать?
Я думал об этом, подсчитал объем и ужаснулся. Допустим штук 30 спрайтов, допустим по 15 кадров анимации на каждый, ну и штук 50 видимо разных углов поворота чтоб не дергалось. Итого 22500 картинок по 10 килобайт допустим каждая итого 225000 кб, т.е. 200 мегабайт примерно.
Здравствуйте, Рома Мик, Вы писали:
РМ>Здравствуйте, Hacker_Delphi, Вы писали:
H_D>>Здравствуйте, Рома Мик, Вы писали:
H_D>>А не судьба спрайтов для всех вращений заранее сделать? РМ>Я думал об этом, подсчитал объем и ужаснулся. Допустим штук 30 спрайтов, допустим по 15 кадров анимации на каждый, ну и штук 50 видимо разных углов поворота чтоб не дергалось. Итого 22500 картинок по 10 килобайт допустим каждая итого 225000 кб, т.е. 200 мегабайт примерно. нафига столько кадров анимации? (обычно в 2Д играх стока не используется)
хватит 36 углов поворота (остальное уже можно просто поворотами добирать, возможно что хватит 16-ти)
какого размера спрайты? если что-то типа 32*32 — получается, что у тебя
32*32*4*36*15*30 = 66355200 байт, то есть около 64 мегабайт они займут в видеопамяти (а если все туда не запихнуть — будет медленно)
Не забывай, что PNG сжимает раза в 4-10, насколько я помню, то есть около 6-16 мегабайт на все спрайты...
а как уже говорилось, в принципе можно и меньше сделать
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Hacker_Delphi, Вы писали:
H_D>>>А не судьба спрайтов для всех вращений заранее сделать? РМ>>Я думал об этом, подсчитал объем и ужаснулся. Допустим штук 30 спрайтов, допустим по 15 кадров анимации на каждый, ну и штук 50 видимо разных углов поворота чтоб не дергалось. Итого 22500 картинок по 10 килобайт допустим каждая итого 225000 кб, т.е. 200 мегабайт примерно. _D>нафига столько кадров анимации? (обычно в 2Д играх стока не используется)
А сколько? У меня вот столько получается... Летит кораблик космический, покачивается немного, лампочками мигает. Чтобы плавно было штук десять-пятнадцать кадров надо...
H_D>хватит 36 углов поворота (остальное уже можно просто поворотами добирать, возможно что хватит 16-ти)
36 явно не хватает, я и в 50 не уверен: видны резкие скачки при смене освещенности.
H_D>какого размера спрайты? если что-то типа 32*32 — получается, что у тебя
Ну минимум где-то как раз 32x32, до 512x512, а большинство 128x128.
А вообще, о чем мы спорим?
ЗЫ Чтой-то выходные прошли, а я так ни за что и не взялся
Здравствуйте, Рома Мик, Вы писали:
РМ>Очень хочется реализовать сабж, в том смысле, что летают объекты по экрану и из левого верхнего угла освещаются, точь в точь как кнопки в windows, только объекты еще и крутятся (исключительно вокруг оси перпендикулярной экрану).
если 2Д значит спраиты а значит все освечение прямо вних
Здравствуйте, Рома Мик, Вы писали:
РМ>Здравствуйте, LexKex, Вы писали:
LK>>если 2Д значит спраиты а значит все освечение прямо вних РМ>А топик прочитать?..
Здравствуйте, Сергей, Вы писали:
С>Здравствуйте, casual, Вы писали:
С>[...]
C>>nu chital i chto tam takogo nu tkni nosom
С>Мдя. С>Спрайты 128x128x32, 50 углов поворота (а то и больше, спрайты-то большие). Итого 3 метра на один кадр анимации спрайта. Не катит.
Rech na skolko ya ponyal o 2D a v 2D eto znacit sprity.
Здравствуйте, Alexey Chen, Вы писали:
AC>Ты только о результатах написать не забудь. Желательно с шотами. Жутко интересно что получится. http://rsdn.ru/File/5663/light_demo.zip
Стрелки влево-вправо — крутить корабль
Вверх-вниз — крутить свет
Здравствуйте, Рома Мик, Вы писали:
AC>>Ты только о результатах написать не забудь. Желательно с шотами. Жутко интересно что получится. РМ>http://rsdn.ru/File/5663/light_demo.zip РМ>Стрелки влево-вправо — крутить корабль РМ>Вверх-вниз — крутить свет
Здорово получилось
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн