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

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

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

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

Ответ
 
Опции темы
Старый 04.06.2010, 17:43   #1
gforcer18
Нуждающийся
 
Аватар для gforcer18
 
Регистрация: 06.02.2010
Адрес: Ижевск, Удмуртия, РФ
Сообщений: 78
Написано 19 полезных сообщений
(для 54 пользователей)
Печаль Xors3D и вода

Привет
Искал по сайтам Xors3D инфу про воду, нашел лишь нерабочую ссылку на исходник Xors3D для PureBasic.
Помогите нубу примером создания воды на Xors3D с шейдерами
__________________
Активный, общительный, адекватный, вежливый, терпеливый, немножко ленивый, креативный оригинал
(Offline)
 
Ответить с цитированием
Старый 04.06.2010, 19:48   #2
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Xors3D и вода

А пример Island не помогает? Я от туда брал воду, работало вроде раньше...
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 05.06.2010, 08:44   #3
gforcer18
Нуждающийся
 
Аватар для gforcer18
 
Регистрация: 06.02.2010
Адрес: Ижевск, Удмуртия, РФ
Сообщений: 78
Написано 19 полезных сообщений
(для 54 пользователей)
Печаль Ответ: Xors3D и вода

неужели никто воду с шейдерами не знает как сделать ?!
__________________
Активный, общительный, адекватный, вежливый, терпеливый, немножко ленивый, креативный оригинал
(Offline)
 
Ответить с цитированием
Старый 05.06.2010, 10:29   #4
jimon
 
Сообщений: n/a
Ответ: Xors3D и вода

gforcer18
бери любой пример для hlsl, причем тут xors3d ?
 
Ответить с цитированием
Старый 05.06.2010, 15:07   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D и вода

Почему все думают, что шейдеры такие волшебные?
Ими тут разве что наложение текстуры да искажения можно сделать, остальное всё как обычно (в т.ч. и генерация текстуры отражения, начни вот с неё)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 05.06.2010, 15:18   #6
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Xors3D и вода

Сообщение от ABTOMAT Посмотреть сообщение
Почему все думают, что шейдеры такие волшебные?
Наверное потому, что так и есть )
Когда впервые засядишь за шейдеры и начинаешь въезжать в их работу - приходит неописуемая радость )

+
http://forum.boolean.name/showpost.p...&postcount=970

+


+


+ Вот вчера сделал шейдер PostProcess Contrast (на скрине полная мощность 1.0, но вообще в двиге 0.15)


Автору поможет демка Island(В примерах ксорса), только знай, что в той деме есть места где стоит оптимизировать. Например, вместо рендера мира второй раз стоит задуматься а не лучше ли скопировать содержимое буффера...

Вот вода у меня:
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Эти 9 пользователя(ей) сказали Спасибо EvilChaotic за это полезное сообщение:
Антихрист (05.06.2010), Android (06.06.2010), Arton (06.06.2010), baton4ik (09.06.2010), BlackOut (09.06.2010), is.SarCasm (30.06.2010), Mr_F_ (06.06.2010), Reizel (28.06.2010), St_AnGer (05.06.2010)
Старый 06.06.2010, 05:37   #7
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D и вода

Наверное потому, что так и есть )
Когда впервые засядишь за шейдеры и начинаешь въезжать в их работу - приходит неописуемая радость )
А то я не писал.
Просто блин народ думает, что всегда найдётся волшебный шейдер, который за них игру сделает.
Тут всё же придётся некоторые вещи сделать ручками.
В т.ч. рендер отражения со второй камеры.
Короче читай пост внимательней.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 06.06.2010, 16:37   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Xors3D и вода

Делал я воду
и даже с кругами от всплесков
только выдрать ее из проекта в отдельный пример - это полдня потратить

Нажмите на изображение для увеличения
Название: Image2.jpg
Просмотров: 1098
Размер:	95.3 Кб
ID:	10276
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
Android (26.06.2010), Dream (06.06.2010), is.SarCasm (30.06.2010)
Старый 06.06.2010, 16:41   #9
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Xors3D и вода

Сообщение от ABTOMAT Посмотреть сообщение
А то я не писал.
Просто блин народ думает, что всегда найдётся волшебный шейдер, который за них игру сделает.
.

Ы
валшебный шойдер
const float4x4 MatWorldViewProj;
const float4x4 MatWorld;





float2 TexScale=float2(1.0f,1.0f);

float3 Ring[10];

const float2 OffsetF;		// Offset First
const float2 OffsetS;		// Offset Second

const float FallOffSoft;	// FallOff Soft
const half FallOffInt;		// FallOff Intensity
const float3 WaterColor;	// Water Color

const half WaterInt;		// Water Intensity

const float ViewSoft;		// View Soft

const float Refract;		// Refraction Intensity
const float Reflect;		// Reflection Intensity


const float attenuat1;		// Attenuation 1
const float attenuat2;		// Attenuation 2



// Positions
float3 PosCamera;			// Camera Position

// Other
static float2 ProjCoords;
static float3 Color;
static float4 cD;
static float3 cN;
static float3 cNRing;
static float3 cS;
static float3 cR;
static float cFV;
static float cFO;
static float koof;


static float3 nCamera;


//##################  Textures  ##################
const texture tDiffuse;
sampler TexDiffuse=sampler_state {
    Texture   = <tDiffuse>;
    ADDRESSU  = WRAP;
    ADDRESSV  = WRAP;
    ADDRESSW  = WRAP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};
const texture tNormalW;
sampler TexNormalW=sampler_state {
    Texture   = <tNormalW>;
    ADDRESSU  = WRAP;
    ADDRESSV  = WRAP;
    ADDRESSW  = WRAP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};
const texture tNormalN;
sampler TexNormalN=sampler_state {
    Texture   = <tNormalN>;
    ADDRESSU  = WRAP;
    ADDRESSV  = WRAP;
    ADDRESSW  = WRAP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};

const texture tRing;
sampler TexRing=sampler_state {
    Texture   = <tRing>;
    ADDRESSU  = CLAMP;
    ADDRESSV  = CLAMP;
    ADDRESSW  = CLAMP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};

const texture tRingS;
sampler TexRingS=sampler_state {
    Texture   = <tRingS>;
    ADDRESSU  = CLAMP;
    ADDRESSV  = CLAMP;
    ADDRESSW  = CLAMP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};

const texture tRing_;
sampler TexRing_=sampler_state {
    Texture   = <tRing_>;
    ADDRESSU  = CLAMP;
    ADDRESSV  = CLAMP;
    ADDRESSW  = CLAMP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};

const texture tScreen;
sampler TexScreen=sampler_state {
    Texture   = <tScreen>;
    ADDRESSU  = CLAMP;
    ADDRESSV  = CLAMP;
    ADDRESSW  = CLAMP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};
const texture tReflection;
sampler TexReflection=sampler_state {
    Texture   = <tReflection>;
    ADDRESSU  = CLAMP;
    ADDRESSV  = CLAMP;
    ADDRESSW  = CLAMP;
    MAGFILTER = LINEAR;
    MINFILTER = LINEAR;
    MIPFILTER = LINEAR;
};


//###############  Input VS  ###############
struct svNTB_TC {
    float4 Position	: POSITION0;
	float3 Normal : NORMAL;
	float3 Tangent : TANGENT;
	float3 Binormal : BINORMAL;
	float2 TexCoords : TEXCOORD0;
};
//###############  Output VS  ##############
struct spPW_NTB_TC_TP {
        float4 Position	: POSITION0;
	float4 pWorld : TEXCOORD0;
	float3 Normal : TEXCOORD1;
	float3 Tangent : TEXCOORD2;
	float3 Binormal : TEXCOORD3;
	float2 TexCoords : TEXCOORD4;
	float3 TexProj : TEXCOORD5;
};


//##################  VS  ##################
void vsPV_NTB_TC_TP( in svNTB_TC IN, out spPW_NTB_TC_TP OUT ) {
	OUT.Position		= mul(IN.Position,MatWorldViewProj);
	OUT.pWorld			= mul(IN.Position,MatWorld);
	OUT.Normal			= normalize(mul(IN.Normal,MatWorld));
	OUT.Tangent			= normalize(mul(IN.Tangent,MatWorld));
	OUT.Binormal		= normalize(mul(IN.Binormal,MatWorld));
	OUT.TexCoords		= IN.TexCoords;
	OUT.TexProj.x		= 0.5f*(OUT.Position.w+OUT.Position.x);
	OUT.TexProj.y		= 0.5f*(OUT.Position.w-OUT.Position.y);
	OUT.TexProj.z		= OUT.Position.w;


}


//##################  PS  ##################
float4 psWater( in spPW_NTB_TC_TP IN ) : COLOR {
	cN				= tex2D(TexNormalW,IN.TexCoords/TexScale+OffsetF)*0.5f;
	cN				+=tex2D(TexNormalN,IN.TexCoords/TexScale+OffsetS)*0.5f;



for (int i = 0; i < 5; i++)

       {

   
        cNRing			+=tex2D(TexRing,(IN.TexCoords+Ring[i].xy)/Ring[i].z)*0.05f*(1-Ring[i].z*attenuat1);
        cNRing			+=tex2D(TexRing_,(IN.TexCoords+Ring[i].xy)/Ring[i].z)*0.05f*(1+Ring[i].z*attenuat1);

//*(1-Ring[i].z)*(1+Ring[i].z)
	 
        } 

for (int i = 5; i < 10; i++)

       {

   
        cNRing			+=tex2D(TexRingS,(IN.TexCoords+Ring[i].xy)/Ring[i].z)*0.05f*(1-Ring[i].z*attenuat2);
        cNRing			+=tex2D(TexRing_,(IN.TexCoords+Ring[i].xy)/Ring[i].z)*0.05f*(1+Ring[i].z*attenuat2);	 
        } 


	cN				= cNRing*0.9+cN*0.1f;

	cN				= normalize(cN*2.0f-1.0f);


	
	PosCamera		= normalize(PosCamera-IN.pWorld);
	
	ProjCoords		= IN.TexProj.xy/IN.TexProj.z;
	
	cS				= tex2D(TexScreen,ProjCoords+cN.xy*Refract);
	
	ProjCoords.y	= 1.0f-ProjCoords.y;
	cR		= tex2D(TexReflection,ProjCoords+cN.xy*Reflect);
	
	nCamera		= normalize(float3(dot(PosCamera,IN.Tangent),
			dot(PosCamera,IN.Binormal),dot(PosCamera,IN.Normal)));
	
	cFV		= pow(max(dot(cN,nCamera),0.0f),ViewSoft)*WaterInt;
	cFO		= pow(max(dot(cN,nCamera),0.0f),FallOffSoft)*FallOffInt;
	
	Color			= cR*(1.0f-cFV)+cS*cFV;
	Color			+=Color*(1.0f-cFO)*FallOffInt*WaterColor;
	//Color			+=Color*(1.0f-saturate(pow(cFO,0.2f)))*FallOffInt*WaterColor;
	
	return float4(Color*0.8,1.0f);

 
}


//##############  Technique  ###############
technique Water {
	pass p0 {
		AlphaBlendEnable= false;
		vertexshader	= compile vs_3_0 vsPV_NTB_TC_TP();
		pixelshader		= compile ps_3_0 psWater();
	}
}
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (06.06.2010)
Старый 25.06.2010, 13:11   #10
Korobtsov
Оператор ЭВМ
 
Регистрация: 02.04.2010
Сообщений: 25
Написано 3 полезных сообщений
(для 11 пользователей)
Ответ: Xors3D и вода

А как его в Ксорсе использовать? В DLL пихать?
(Offline)
 
Ответить с цитированием
Старый 25.06.2010, 13:17   #11
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Xors3D и вода

Сообщение от Korobtsov Посмотреть сообщение
А как его в Ксорсе использовать? В DLL пихать?
Да....
__________________

(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
Android (26.06.2010), HolyDel (25.06.2010), Randomize (27.06.2010), Reizel (28.06.2010), Tadeus (25.06.2010), Taugeshtu (25.06.2010)
Старый 25.06.2010, 15:10   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D и вода

на сайте ксорса должен быть баальшой тутор по шейдерам. по-крайней мере, разрабы его писали.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 26.06.2010, 15:48   #13
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Xors3D и вода

Сообщение от Mr_F_ Посмотреть сообщение
на сайте ксорса должен быть баальшой тутор по шейдерам. по-крайней мере, разрабы его писали.
Писали, переводили, всем пох на деле оказалось. А так лежит, да - http://area.xors3d.com/depository/do...first-steps-ru
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
ABTOMAT (27.06.2010), BlackOut (27.06.2010), is.SarCasm (30.06.2010), Reizel (28.06.2010), tormoz (27.06.2010)
Старый 28.06.2010, 13:12   #14
Korobtsov
Оператор ЭВМ
 
Регистрация: 02.04.2010
Сообщений: 25
Написано 3 полезных сообщений
(для 11 пользователей)
Ответ: Xors3D и вода

Можно ли запустить пример Island на xors3d 536? Или новые релизы Хорса не поддерживают старые примеры?
(Offline)
 
Ответить с цитированием
Старый 28.06.2010, 13:43   #15
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Xors3D и вода

Кнайт, чето я не могу найти пример Island на xors3d.com Алсо, примеры скачиваются, но не открываются.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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