forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Поздравления и пожелания (http://forum.boolean.name/forumdisplay.php?f=55)
-   -   Не сдержался (http://forum.boolean.name/showthread.php?t=4151)

johnk 14.08.2007 15:57

Не сдержался
 
В общем, прошу меня поздравить....Я накалякал первый Шейдер! :) Который ажно текстурировать может :))) Это конечно примитив, но для меня это нечто большее :) Я уже загнал его в XNA, и вроде работает :)

IGR 14.08.2007 15:59

Re: Не сдержался
 
дай посатреть !!

johnk 14.08.2007 16:57

Re: Не сдержался
 
Вот пиксельный шейдер: sampler Texture0; float4 ps_main(float2 tex :TEXCOORD0) : COLOR0 { return tex2D(Texture0,tex); } а вот вершинный: float4x4 matViewProjection; float fCosTime0_X; float fSinTime0_X; struct VS_OUTPUT { float4 pos : POSITION; float2 txr : TEXCOORD0; }; VS_OUTPUT vs_main(float4 inPos : POSITION, float2 tex:TEXCOORD0) { VS_OUTPUT Out; Out.pos = mul(inPos,matViewProjection); Out.txr = tex; Out.txr.x += fCosTime0_X; Out.txr.y += fSinTime0_X; return Out; }

johnk 14.08.2007 16:58

Re: Не сдержался
 
о_О Сорри, с форматированием что-то не то.

H@NON 14.08.2007 18:01

Re: Не сдержался
 
А где скрин то?
Цитата:

дай посатреть !!
Гы. Очепятка.

IGR 14.08.2007 18:25

Re: Не сдержался
 
Цитата:

А где скрин то?
Во Скрин !!
sampler Texture0; float4 ps_main(float2 tex :TEXCOORD0) : COLOR0 { return tex2D(Texture0,tex); } а вот вершинный: float4x4 matViewProjection; float fCosTime0_X; float fSinTime0_X; struct VS_OUTPUT { float4 pos : POSITION; float2 txr : TEXCOORD0; }; VS_OUTPUT vs_main(float4 inPos : POSITION, float2 tex:TEXCOORD0) { VS_OUTPUT Out; Out.pos = mul(inPos,matViewProjection); Out.txr = tex; Out.txr.x += fCosTime0_X; Out.txr.y += fSinTime0_X; return Out; }

johnk 14.08.2007 19:24

Re: Не сдержался
 
Я шейдер уже немного улучшил :) Теперь шейдер смешивает 2 текстуры, и полученный гибрид анимирует, х-координата меняется по косинусу, а у-по синусу...к сожалению, на скрине анимация не заметна.



HolyDel 14.08.2007 19:57

Re: Не сдержался
 
Поздравляю. Молодец!
мдя. жаль всю крастоу от анимации через картинку не почувствовать.

johnk 14.08.2007 20:01

Re: Не сдержался
 
Да какая там красота :)

moka 18.08.2007 03:53

Re: Не сдержался
 
А Blend'ы тоже задействовал? :)

johnk 18.08.2007 06:17

Re: Не сдержался
 
Всмысле?

moka 18.08.2007 07:26

Re: Не сдержался
 
Ну к примеру смешивание текстуры травы, и облаков, если на облаках бленд Add то будут добавляться к траве цвет пикселя A+B. У тебя как понял сейчас общее арифметическое (A+B)*.5. Ещё Есть Оверлай это A+(B-.5) (С учётом цвет 0.0-1.0 а не 255, если 255 то отнимать 128), при таком наложении (в фотошопе Overlay), картинка будет и засветляться и затемняться. А так же параметр сложения, 0.0 - 1.0, поровну это 0.5. Типо такая формула:
(A*M+B*(-1.0-M))*.5 Это будет общее арифметическое, при этом если M поставить 0.75, то B цвета будет только 25% ну и т.п.

johnk 18.08.2007 07:38

Re: Не сдержался
 
Ни с чем не перепутал? :)
Это HLSL. И все делаетсо очень просто - tex2D. ;)
:-D

moka 18.08.2007 07:49

Re: Не сдержался
 
Тоесть там нету попиксельного сложения? Там не перебираються все пиксели?

johnk 18.08.2007 08:34

Re: Не сдержался
 
Прежде чем спрашивать, RTFM!
Цитата:

tex2D - HLSL

There are two overloaded tex2D texture lookup functions:
  • 2D texture lookup
  • 2D texture lookup with partial derivatives
2D texture lookup

This function performs a 2D texture lookup.
Syntax

ret tex2D(s, t) Where:
Name In/Out Template Type Component Type Size s in object sampler2D 1 t in vector float 2 ret out vector float 4 2D texture lookup with partial derivatives

This function performs a 2D texture lookup also, but also uses the partial derivatives to help pick the LOD.
Syntax

ret tex2D(s, t, ddx, ddy) Where:
Name In/Out Template Type Component Type Size s in object sampler2D 1 t in vector float 2 ddx in vector float 2 ddy in vector float 2 ret out vector float 4


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot