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

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

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

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

Ответ
 
Опции темы
Старый 08.12.2011, 13:39   #316
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Странное.

Сообщение от Reizel Посмотреть сообщение
у позиффиката мания запилить все в свой движок\обертку xD
Почему бы и нет.. но я имел ввиду писать самому с нуля ))
(Offline)
 
Ответить с цитированием
Старый 10.12.2011, 20:48   #317
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (10.12.2011)
Старый 11.12.2011, 01:15   #318
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Странное.

Там странный переход заметен, угол такой..
(Offline)
 
Ответить с цитированием
Старый 11.12.2011, 21:33   #319
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 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
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.


Только солнце Теперь края почти запустились
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (12.12.2011)
Старый 11.12.2011, 22:28   #321
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.


Критикуйте солнце.

Критики не запустившие приложение идите в ад

Последний раз редактировалось dsd, 13.12.2011 в 22:59.
(Offline)
 
Ответить с цитированием
Старый 11.12.2011, 22:38   #322
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Странное.

в архиве солнца нет
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (11.12.2011)
Старый 11.12.2011, 22:42   #323
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

На нвидиях должно работать. Походу ati видеокарты гораздо привередливей к тексту хлсл. На x3000 тоже должно работать.

HolyDel, а облака рисуются? Или просто серое ничто как при ошибке? Можно скрин если не серое?
(Offline)
 
Ответить с цитированием
Старый 11.12.2011, 22:56   #324
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

Походу оно могло не работать из-за деления на ноль.
Вот шейдер, без деления.

Последний раз редактировалось dsd, 13.12.2011 в 22:59.
(Offline)
 
Ответить с цитированием
Старый 11.12.2011, 23:05   #325
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Странное.

также
Миниатюры
Нажмите на изображение для увеличения
Название: sunless.jpg
Просмотров: 576
Размер:	196.7 Кб
ID:	15698  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (11.12.2011)
Старый 11.12.2011, 23:14   #326
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

О_о косяк с матрицами. Них ж себе. Причем косяк с семантиками, причем не везде. Сквид, походу глюк

А с этим?

Последний раз редактировалось dsd, 13.12.2011 в 22:59.
(Offline)
 
Ответить с цитированием
Старый 12.12.2011, 09:31   #327
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Странное.

Мне одному кажется, что солнце ну ооооооооочень какоето желтое? И вылезающее за облака
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
dsd (12.12.2011), Mr_F_ (12.12.2011)
Старый 12.12.2011, 10:32   #328
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Странное.

Проверил, всё работает. Видяха - нвидия GTX260.
С художественной стороны:
Несоответствие: солнце при восходе или закате, а небо при ясном дне.
Солнце перед облаками. И еще в облаках прослеживается математика (не естественно выглядят).

Зачем делаешь чтобы текстуры так сильно рябили?
ПС Понравился скрин солнце на чёрном фоне - космос
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (12.12.2011)
Старый 12.12.2011, 13:45   #329
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Странное.

Проверил на компе из подписи - ситуация как у HolyDel
__________________

Последний раз редактировалось mauNgerS, 12.12.2011 в 14:57.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (12.12.2011)
Старый 12.12.2011, 14:21   #330
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 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 за это полезное сообщение:
mauNgerS (12.12.2011), pozitiffcat (12.12.2011)
Ответ


Опции темы

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

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


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


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