Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 26.11.2011, 21:27   #271
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.


Это анализ нормали.
float deg=dot(input.viewVec,input.normal);
if(deg>0.9{diffuse=float4(1,1,0,1);}
Причем как управлять позицией мне не ясно


Это анализ расстояния от пикселя в центре солнца
float3 sunpos=50*float3(0,1,0);
float3 pixpos=input.pos2.xyz;
float3 vecpixsun=sunpos-pixpos;
float dist=length(vecpixsun);
if(dist<4){diffuse=float4(1,1,0,1)}
И, да простит меня Мока, управление позицией элементарно, диаметр тоже легко изменить, ну и контур менее зависим от геометрии небосклона.
(Offline)
 
Ответить с цитированием
Старый 26.11.2011, 23:44   #272
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.


А еще эти облачка плавно меняются

Последний раз редактировалось dsd, 13.12.2011 в 22:59.
(Offline)
 
Ответить с цитированием
Старый 27.11.2011, 03:05   #273
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Странное.

Погляди на оф.форуме. Там товарищ ascii1457 уже делал шейдеры неба с солнцем. Может наведет на какие-то мысли.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (27.11.2011)
Старый 27.11.2011, 03:37   #274
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Да и я в RUST'е делал, с изменением размера динамично исходя из положеня, ведь в зените будет маленькое..
Вот вырезки из шейдера, за стиль приношу извенения, раньше опыта и дисциплины не хватало:

VecSky.xyz = normalize(PosCam-IN.pWorld);
DotSun = pow(max(dot(VecSun,VecSky.xyz),0.0f),SizeSun);
Color.rgb += DotSun;
VecSky.xyz - это тупо вектор от центра камеры к обрабатываемому пикселю.
VecSun - это вектор (переменная), которую ты посылаешь с кода. Вектор от камеры, где солнце находится, например { 0,1,0 } - это вертикально сверху.
SizeSun нада большим числом, попробуй сперва 10f например, потом поэксперементируй, я не помню уже.
Собственно и всё. На деле всё ОЧЕНЬ просто, и можно без проблем регулировать и положение и размер, и цвет да что угодно. Не мудри с нормалями - они не стабильны, используй как предложил вектор между камерой и позицией пикселя.

Глянь RUST, я когда-то делал небо там, правда сейчас бы сделал лучше, но там неплохо закат был имхо.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (27.11.2011)
Старый 27.11.2011, 03:53   #275
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

Мока, я сделал по другому. Семантикой получаю направление света. Умножаю его на -1. Умножаю на масштаб вывернутой наизнанку сферы прикидывающейся небосводом. Це позиция светила на небесной сфере. Потом вычитая из позиции центра солнца позициею пикселя имею вектор. Длину которого узнать изноупроблем. Если длина меньше радиуса светила, то цвет подменяется на цвет солнца в этой точке.

Профит. Автоматически управляемое хорсом солнце одинакового диаметра независимо от позиции. И да, я не использую нормали, я просто рисую на сфере. Надо бы вкуриться в то как расписывают купола, но это будет уже не нормально

Просто снижение яркости картинки при взгляде на солнце это HDR? По моему это должно быть более сложным анализом картинки, основанном на 3-4 кадрах хотя бы за секунду, что ли.
(Offline)
 
Ответить с цитированием
Старый 27.11.2011, 04:00   #276
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Сообщение от dsd Посмотреть сообщение
Мока, я сделал по другому. Семантикой получаю направление света. Умножаю его на -1. Умножаю на масштаб вывернутой наизнанку сферы прикидывающейся небосводом. Це позиция светила на небесной сфере. Потом вычитая из позиции центра солнца позициею пикселя имею вектор. Длину которого узнать изноупроблем. Если длина меньше радиуса светила, то цвет подменяется на цвет солнца в этой точке.

Профит. Автоматически управляемое хорсом солнце одинакового диаметра независимо от позиции. И да, я не использую нормали, я просто рисую на сфере. Надо бы вкуриться в то как расписывают купола, но это будет уже не нормально
Получается что тебе надо обязательно ставить сферу на положение в шейдере как и размер сферы неба? А что с триангуляцией неба? Или например заюзать хочешь кубмапу? Мой вариант имхо, более независимый от тонкостей, и выдаёт не резкий результат (края не пиксильные).
Делай не расстояние пикселя к сфере солнца, а по векторам, как предлагаю, будет то же самое что у тебя, только без пикселизации на гранях, и абсолютной не зависимости от геометрии неба (куб, сфера, да хоть плэйн перед камерой, и т.п.).
Вектор солнца - также из семантики можно без проблем вычислить - это тупо нормализированная позиция солца - позиция камеры.

UPD:
Вот сделал скрины, далёкий 2008ой..
Миниатюры
Нажмите на изображение для увеличения
Название: scr_1.jpg
Просмотров: 605
Размер:	162.9 Кб
ID:	15592  Нажмите на изображение для увеличения
Название: scr_2.jpg
Просмотров: 613
Размер:	158.7 Кб
ID:	15593  Нажмите на изображение для увеличения
Название: scr_3.jpg
Просмотров: 624
Размер:	157.7 Кб
ID:	15594  Нажмите на изображение для увеличения
Название: scr_4.jpg
Просмотров: 612
Размер:	158.5 Кб
ID:	15595  
(Offline)
 
Ответить с цитированием
Старый 27.11.2011, 04:08   #277
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

Мока, наши деревья в этом вопросе сильно разные

Говоря про пикселезацию это ты намекаешь на то, что я края у солнца не смазал? Я там собирался какой-нить сложный градиент сочинить. Я скачал твой раст, завтра буду потрошить
(Offline)
 
Ответить с цитированием
Старый 27.11.2011, 04:16   #278
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Сообщение от dsd Посмотреть сообщение
Мока, наши деревья в этом вопросе сильно разные

Говоря про пикселезацию это ты намекаешь на то, что я края у солнца не смазал? Я там собирался какой-нить сложный градиент сочинить. Я скачал твой раст, завтра буду потрошить
Ну глянь скрины выше.

Да и это скорее я не как "лучше я думаю", а скорее с точки зрения кривости самой реализации. Если рассматривать реализацию чего-либо, алгоритма, механизма, шаблона, интерфейса, да чего угодно, то она должна как можно меньше зависеть от "потайных" правил. Например у тебя есть они - длина вектора ДОЛЖНА быть радиусом сферодомы неба. Сферодома - должна иметь достаточную триангуляцию, иначе будут артефакты.
Все эти "или", "если", и т.п. - плохой тон в любой сфере программирования. Старайся их избегать, либо реюзабельность идей и даже исходника - сомнительна и специфична, тем более другими людьми.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (27.11.2011)
Старый 28.11.2011, 02:55   #279
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Странное.

Мока, а можно машиной из Раста воспользоваться в примерах Хорса?
__________________

(Offline)
 
Ответить с цитированием
Старый 28.11.2011, 03:13   #280
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Сообщение от .Squid Посмотреть сообщение
Мока, а можно машиной из Раста воспользоваться в примерах Хорса?
Надо у m_512 (Михаил) спросить..
(Offline)
 
Ответить с цитированием
Старый 28.11.2011, 09:17   #281
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Странное.

а вас не стремает писать сложный шейдер для фона? не проще солнышко по старинке нарисовать поверх неба? или лучше небо поверх солнца?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (28.11.2011)
Старый 28.11.2011, 10:01   #282
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: Странное.

Крутые пацаны не ищут легких путей! )
__________________
(Offline)
 
Ответить с цитированием
Старый 28.11.2011, 15:31   #283
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.


Я походу придумал как можно сжульничать и обойтись текстурами без расчетов.
(Offline)
 
Ответить с цитированием
Старый 28.11.2011, 16:40   #284
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

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

Можно сделать и текстурой уху, но никакой динамики толком не сделаешь, тем более зачем тебе текстура, если это тупо окружность? Тем более если хочешь использовать полноценный HDR, то использование цвета который ярче чем 1.0f, то именно процедурно это намного лучше реализовывать. Изменение размера тоже. Да и шустрее, чем выборки делать постоянные.
Вот например использовать текстуру для проекции спутников в небе - уже другой вариант, но и тут снова, если нужна реально красота и реалестичная атмосфера, тогда вообще нужно это дело делать используя атмосферный скаттеринг (подобие Volumetric Fog), чтобы атмосфера также влияла и на всё окружение (туман), и солнце уже можно делать тупо сферой в космосе, как и спутники.

В общем dsd - не занимайся извратами, серьёзно.. Это тебе пользы не принесёт.
(Offline)
 
Ответить с цитированием
Старый 28.11.2011, 17:10   #285
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

Книга Притчи > Глава 21 > Стих 29:
Человек нечестивый дерзок лицом своим, а праведный держит прямо путь свой.

Книга Притчи > Глава 28 > Стих 10:
Совращающий праведных на путь зла сам упадет в свою яму, а непорочные наследуют добро.

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 21:19.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com