|
Xors3D Графический движок с поддержкой DirectX9 |
08.12.2011, 13:39
|
#316
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Странное.
Сообщение от Reizel
у позиффиката мания запилить все в свой движок\обертку xD
|
Почему бы и нет.. но я имел ввиду писать самому с нуля ))
|
(Offline)
|
|
10.12.2011, 20:48
|
#317
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
float4 PSMain(VSOutput input) : COLOR0 {
float height=pow((200-input.viewVec.y)/200,2); //цвет у горизонта 222 251 255 //цвет в зените 87 124 179 float red=(87+135*height)/255; float green=(124+127*height)/255; float blue=(179+76*height)/255; float4 diffuse =float4(red,green,blue,1); //the sun float3 sunpos=lightDirection; float3 pos=normalize(input.viewVec.xyz); float grad=dot(pos,-sunpos); float4 sunc=float4(0,0,0,0); if(grad>0.998){sunc=float4(1,0,0,0);} //********************************** float3 ntexcoor=normalize(input.viewVec.xyz); float leng=length(ntexcoor.xz); float2 textcoor = ntexcoor.xz*(1.4-ntexcoor.y)+0.03*float2(time,time); //********************************** //читаю из текстуры облакаж float4 cloud=pow(1.35*tex2D(diffuseSampler,textcoor),4); float mixfactor=2*frac(time/50); if(mixfactor<=1){red=0.7*lerp(cloud.x,cloud.y,mixfactor);} if(mixfactor>1){red=0.7*lerp(cloud.x,cloud.y,2-mixfactor);}
if(leng>0.949){red=lerp(1,red,20*(0.999-leng));} if(leng>0.999){red=1;} float4 cloud1=float4(1,1,1,1)-min(float4(red,red,red,0),diffuse); float4 result=max(cloud1,diffuse); // возвращаем результирующий цвет пиксела return result+2*sunc; (output.viewVec=input.position;) }
Прикольные текстурные координаты создающие впечатление плоскости при рисовании на сфере.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2011, 01:15
|
#318
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Странное.
Там странный переход заметен, угол такой..
|
(Offline)
|
|
11.12.2011, 21:33
|
#319
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
Там градиент неба рисовался исходя из абсолютной высоты на меше, а не как следует.
Первая попытка внедрения менталрэйвских кусков шейдера в мое творение.
// пиксельный шейдер
float4 PSMain(VSOutput input) : COLOR0
{
float3 ntexcoor=normalize(input.viewVec.xyz);
float height=pow((ntexcoor.y),2);
//цвет у горизонта 150 179 209
//цвет в зените 66 88 135
float red=(150-84*height)/255;
float green=(179-91*height)/255;
float blue=(209-74*height)/255;
float4 diffuse =float4(red,green,blue,1);
float leng=length(ntexcoor.xz);
float2 textcoor = ntexcoor.xz*(1.5-ntexcoor.y)+0.01*float2(time,time);
//читаю из текстуры облакаж
float4 cloud=pow(1.3*tex2D(diffuseSampler,textcoor),4);
float mixfactor=pow(abs(sin(time/20.0)),3);
red=lerp(cloud.x,cloud.y,mixfactor);
float4 cloud1=float4(1,1,1,1)-abs(min(float4(red,red,red,red),diffuse));
if(leng>0.949){cloud1=lerp(0,cloud1,20*(0.999-leng));}
cloud1=pow(cloud1,4.07);
if(cloud1.r>cloud1.g+cloud1.b){cloud1.r=cloud1.g;}
cloud1.r=cloud1.b;
cloud1.g=cloud1.b;
float4 result=lerp(diffuse,sqrt(cloud1),pow(cloud1.r,4));
//the sun
float3 sunpos=lightDirection;
float3 pos=normalize(input.viewVec.xyz);
float grad=dot(pos,-sunpos);
float4 sunc=float4(0,0,0,0);
if(grad>0.998){sunc=float4(1,0,0,0);}
//injection of be cool shader
// Be Cool
float a = acos(grad);
float r = 150*(1-grad);
float b = 1.9 * sin(8.0 * r - time - 2.0 * a);
b = 0.3125 / r + cos(7.0 * a + b * b) / (100.0 * r);
b *= smoothstep(0.2, 0.8, b);
sunc = float4(b, 0.67 * b + 0.1 * sin(a + time), 0.0, 1.0);
// возвращаем результирующий цвет пиксела
return result+2*sunc;
}
А также починил чудовищно разноцветные края облачков и еще кой-чо.
|
(Offline)
|
|
11.12.2011, 21:50
|
#320
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
Только солнце Теперь края почти запустились
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2011, 22:28
|
#321
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
Критикуйте солнце.
Критики не запустившие приложение идите в ад
Последний раз редактировалось dsd, 13.12.2011 в 22:59.
|
(Offline)
|
|
11.12.2011, 22:38
|
#322
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Странное.
в архиве солнца нет
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2011, 22:42
|
#323
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
На нвидиях должно работать. Походу ati видеокарты гораздо привередливей к тексту хлсл. На x3000 тоже должно работать.
HolyDel, а облака рисуются? Или просто серое ничто как при ошибке? Можно скрин если не серое?
|
(Offline)
|
|
11.12.2011, 22:56
|
#324
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
Походу оно могло не работать из-за деления на ноль.
Вот шейдер, без деления.
Последний раз редактировалось dsd, 13.12.2011 в 22:59.
|
(Offline)
|
|
11.12.2011, 23:05
|
#325
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Странное.
также
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2011, 23:14
|
#326
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
О_о косяк с матрицами. Них ж себе. Причем косяк с семантиками, причем не везде. Сквид, походу глюк
А с этим?
Последний раз редактировалось dsd, 13.12.2011 в 22:59.
|
(Offline)
|
|
12.12.2011, 09:31
|
#327
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Странное.
Мне одному кажется, что солнце ну ооооооооочень какоето желтое? И вылезающее за облака
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
|
|
12.12.2011, 10:32
|
#328
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Странное.
Проверил, всё работает. Видяха - нвидия GTX260.
С художественной стороны:
Несоответствие: солнце при восходе или закате, а небо при ясном дне.
Солнце перед облаками. И еще в облаках прослеживается математика (не естественно выглядят).
Зачем делаешь чтобы текстуры так сильно рябили?
ПС Понравился скрин солнце на чёрном фоне - космос
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2011, 13:45
|
#329
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Странное.
Проверил на компе из подписи - ситуация как у HolyDel
__________________
Последний раз редактировалось mauNgerS, 12.12.2011 в 14:57.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2011, 14:21
|
#330
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Странное.
Значит косяк на атишных видюхах вот в этой строчке:
output.position = mul(input.position, matrixWorldViewProj);
Потому что судя по скрину шейдером меши унесло в неведомую даль, а нигде кроме, как этой строкой позиции вершин у меня не меняются.
Такой оттенок лучше?
twisted firefly
float3 pos=normalize(input.pos.xyz);
float grad=dot(pos,-lightDirection);
float3 sunnycoords=-lightDirection-pos;
float a=atan2(sunnycoords.x,sunnycoords.y);
float r=length(sunnycoords.xy)+0.001;
float b=1.9*sin(r-time-2.0*a);
b = (0.04125 + 0.01*cos(7.0*a +b*b) )/ r;
b = 0.57*b*b;
a=b+0.09 * sin(a + time);
float4 sunc = float4(b, a, 0.9*a, 1.0);
if(grad<0.996 && grad>=0.9){sunc=lerp(sunc,float4(0,0,0,0),(0.996-grad)/0.096);}
if(grad<0.9){sunc=float4(0,0,0,0);}
// возвращаем результирующий цвет пиксела
return sunc;
Последний раз редактировалось dsd, 12.12.2011 в 17:43.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:12.
|