|
3D-программирование Вопросы, касающиеся программирования 3D мира |
09.01.2007, 23:59
|
#1
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Ashadow & Шейдеры
Можно ли в Ashadow делать Шейдеры ?
Если можно , то подскажите как . --=={{{ ПЛИЗ }}}==--
|
(Offline)
|
|
10.01.2007, 00:43
|
#2
|
|
Re: Ashadow & Шейдеры
как я помню можно
хотя я досих пор мало че знаю об етой библе
а ты хоть знаеш что такое шейдер ?
по учи лутче HLSL....
|
|
|
10.01.2007, 00:46
|
#3
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Ashadow & Шейдеры
Шейдер ето вродебы материал .
А HLSL помоему только на C++
|
(Offline)
|
|
10.01.2007, 01:06
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Ashadow & Шейдеры
шейдер - это микропрограмка, помоему. которая выполняется для каждой вершины/пикселя.
вроде на дх7 шейдеры не работают.
|
(Offline)
|
|
10.01.2007, 05:46
|
#6
|
Бывалый
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений (для 102 пользователей)
|
Re: Ashadow & Шейдеры
DRAG
А если было б можно, чем это тебе помогло бы?
|
(Offline)
|
|
10.01.2007, 11:37
|
#7
|
|
Re: Ashadow & Шейдеры
ну вот к примеру простенький особо ничего не делающий шейдер из примеров irrlichtа
юзается HLSL
других языков кроме асма и Cg для шейдеров не используют вообще
// part of the Irrlicht Engine Shader example.
// These simple Direct3D9 pixel and vertex shaders will be loaded by the shaders
// example. Please note that these example shaders don't do anything really useful.
// They only demonstrate that shaders can be used in Irrlicht.
//-----------------------------------------------------------------------------
// Global variables
//-----------------------------------------------------------------------------
float4x4 mWorldViewProj; // World * View * Projection transformation
float4x4 mInvWorld; // Inverted world matrix
float4x4 mTransWorld; // Transposed world matrix
float3 mLightPos; // Light position
float4 mLightColor; // Light color
// Vertex shader output structure
struct VS_OUTPUT
{
float4 Position : POSITION; // vertex position
float4 Diffuse : COLOR0; // vertex diffuse color
float2 TexCoord : TEXCOORD0; // tex coords
};
VS_OUTPUT vertexMain( in float4 vPosition : POSITION,
in float3 vNormal : NORMAL,
float2 texCoord : TEXCOORD0 )
{
VS_OUTPUT Output;
// transform position to clip space
Output.Position = mul(vPosition, mWorldViewProj);
// transform normal
float3 normal = mul(vNormal, mInvWorld);
// renormalize normal
normal = normalize(normal);
// position in world coodinates
float3 worldpos = mul(mTransWorld, vPosition);
// calculate light vector, vtxpos - lightpos
float3 lightVector = worldpos - mLightPos;
// normalize light vector
lightVector = normalize(lightVector);
// calculate light color
float3 tmp = dot(-lightVector, normal);
tmp = lit(tmp.x, tmp.y, 1.0);
tmp = mLightColor * tmp.y;
Output.Diffuse = float4(tmp.x, tmp.y, tmp.z, 0);
Output.TexCoord = texCoord;
return Output;
}
// Pixel shader output structure
struct PS_OUTPUT
{
float4 RGBColor : COLOR0; // Pixel color
};
sampler2D tex0;
PS_OUTPUT pixelMain( float2 TexCoord : TEXCOORD0,
float4 Position : POSITION,
float4 Diffuse : COLOR0 )
{
PS_OUTPUT Output;
float4 col = tex2D( tex0, TexCoord ); // sample color map
// multiply with diffuse and do other senseless operations
Output.RGBColor = Diffuse * col;
Output.RGBColor *= 4.0;
return Output;
}
вот как я помню шейдер для cartoon еффекта
на асме
он не отредактирован .... потому что так в код вставлялся
короче если убрать апострофы то будет все норм
"!!ARBvp1.0\n"
"OPTION ARB_position_invariant;"
"PARAM c0 = { 0, 0, 0, 0 };"
"TEMP R0, R1;"
"ATTRIB v18 = vertex.normal;"
"PARAM s18 = state.light[" << _lightnum << "].position;"
"PARAM s16 = state.light[" << _lightnum << "].diffuse;"
"PARAM s1 = state.material.diffuse;"
"PARAM s631[4] = { state.matrix.modelview.invtrans };"
"MOV R0, s1;"
"MUL result.color.front.primary, R0, s16;"
"DP4 R0.x, s18, s18;"
"RSQ R0.x, R0.x;"
"MUL R1, R0.x, s18;"
"DP4 R0.x, s631[0], v18;"
"DP4 R0.y, s631[1], v18;"
"DP4 R0.z, s631[2], v18;"
"DP4 R0.w, s631[3], v18;"
"DP4 R0.x, R1, R0;"
"MAX result.texcoord[0].x, c0.x, R0.x;"
"END";
|
|
|
10.01.2007, 13:40
|
#8
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Ashadow & Шейдеры
Чтобы делать на HLSL надо хотяб директ выучить , а я его пока не знаю !
А асамблер ето вобще тёмный лес для меня !
Я думаю на барсике будет проще .
|
(Offline)
|
|
10.01.2007, 13:53
|
#9
|
|
Re: Ashadow & Шейдеры
шейдер пишется на HLSL или на Asm или на Cg
другие языки использовать не получится вообще
|
|
|
10.01.2007, 15:07
|
#10
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Ashadow & Шейдеры
Я думаю что HLSL совместим с С++ .
Вроде все игры пишут на C++ и используют в них шейдеры .
|
(Offline)
|
|
10.01.2007, 15:11
|
#11
|
|
Re: Ashadow & Шейдеры
HLSL ето отдельный язык программирования !
шейдер ето ваще отдельная программа которая никак не связана с программой игры !
если игра выполняется на процесоре
то шейдер выполняется на видеокарте
почитай http://en.wikipedia.org/wiki/Shader
|
|
|
10.01.2007, 15:15
|
#12
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Ashadow & Шейдеры
Ну а как всё ето работает ?
Сама программа игры вызывает программу с шейдером ? Или как ?
|
(Offline)
|
|
10.01.2007, 16:27
|
#13
|
|
Re: Ashadow & Шейдеры
программы с шейдером нету шейдер и есть программа
вопервых шейдер компилируется для текущей видеокарты (обычно в процессе загрузки левела)
ето надо потому что у разных фирм разные подходы в работе шейдеров
потом ета хрень передается видеокарте и вызывается в процессе рендера
|
|
|
10.01.2007, 16:56
|
#14
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Ashadow & Шейдеры
Теперь понятно
|
(Offline)
|
|
10.01.2007, 19:36
|
#15
|
AnyKey`щик
Регистрация: 12.11.2006
Сообщений: 5
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Ashadow & Шейдеры
А Ашадоу юзает только 7-ой дирекс? А всякие эфекты типа рефракшен, рефлекшн, бамп, карты нормалей, это все без шейдеров?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:52.
|