|
نمونه كارهای اجرايي با موتور پار
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
نويسنده |
پيغام |
razielsina متخصص ساخت بازی
تاريخ عضويت: 5 شنبه 8 تير 1385 تعداد ارسالها: 326 محل سكونت: ايران
جمعه 4 بهمن 1387 - 13:50 |
|
|
علي آقا متاسفم و معذرت ميخوام و اونا رو ويرايش كردم.متاسفانه آدم اگه حرف نزنه منفجر ميشه.خلاصه متاسفم.
آقاي ali.solati اشكالي داره متغيرها در هر سايه زن با اسماي متفاوتي نوشته بشن
اگه داره بگين.
ميشه بپرسم كي تا حالا با چندتا سمپل تونسته موتور بسازه.
اوني كه زياده سمپل تو اينترنته اما چرا نتونستن بسازن.
شما خودت بلدي ميشه بگي سايه زن پاييني كارش چيه و كجا تو اينترنت يا هر سايته ديگه ديدي.
ميشه بگي كه عمق ديد كجا پيدا ميشه يا اينكه چجوري كار ميكنه.
ميشه بگي ابرهاي حجم دار چجورين.
ميشه بگي متحرك سازي چمنها تو كجاي اينترنت هست.
ميشه بگي متحرك سازي درختان مثل فار كراي كجا هست تا من دانلود كنم.
ميشه بگي ماتي حركت ذره ها و خود ماتي حركت كجا هست كه دانلود كنم.
ميشه بگي الگوريتم موجهاي اقيانوس كه مثل crysis از كجا گرفتم آيا چنين ايده اي وجود داره.
ميشه بگي texturequalitygeneration كه من ايده شو دادم كجا هست.
ميشه بگي lensflare streak generation كجا تو اينترنت هست.
آخه اي خدا من تو اينترنت نهاييت يك سمپل درباره دايركتس ديده باشم يه مدل با نورپردازي با يه پردازش تصويري سادست اگه از اين بهتر سراغ داري لينكشو بزار با سورس و سايه زنش.
اي خدا كدوم موتور سورس بازي قدرتمندي با دايركتس نه هست كه سايه زنهاي آزاد داره
و رايگانه.
اينم بگم هزاران ؛ميشه بگي؛ ديگه ميتونم بگم كه حوصلشو ندارم و نميخوام بحث راه بندازم.
راستي اينم بگم اينا تركيب تو نسخه قبلي و جديد موتورن.اينو بايد از روي سايه زنها ديگه بدوني.
اينم بگم اگه اينا سمپلن پس پرادزشهاي تصويري كه چندين پاس ميزنه رو چي انجام ميده كه سرعت فريم پايين نياد.
از آخر هم اينو ازت ميخوام كه اين سايه زنو بررسي كني و جواب بدي كه چجوري كار ميكنه.
در ضمن توي مرحله داوري كشوري چندين متخصص برنامه نويس با opengl,dx و گرافيك آوردن و همين جور بچه بازي نيست اگه اينا سمپل بودن و يا يه موتور سورس باز بودن اونا خيلي زودتر از تو ميفهميدن.
//author
//sina kianmehr
texture undernormalfilter;
texture underblendfilter;
int setblendmapping;
int setnormalmapping;
float2 offset;
sampler underblend_sampler=sampler_state
{
Texture=(underblendfilter);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
sampler undernormal_sampler=sampler_state
{
Texture=(undernormalfilter);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
float bloomvalue;
float coldvalue;
float warmvalue;
static const int g_cKernelSize = 13;
float2 PixelKernel[g_cKernelSize] =
{
{ 0, -0.06 },
{ 0, -0.05 },
{ 0, -0.04 },
{ 0, -0.03 },
{ 0, -0.02 },
{ 0, -0.01 },
{ 0, 0.000 },
{ 0, 0.01 },
{ 0, 0.02 },
{ 0, 0.03 },
{ 0, 0.04 },
{ 0, 0.05 },
{ 0, 0.06 },
};
float blurweight[g_cKernelSize]=
{
0.002216,
0.008764,
0.026995,
0.064759,
0.120985,
0.176033,
0.199471,
0.176033,
0.120985,
0.120999,
0.121111,
0.120915,
0.120935,
};
float2 PixelKernel1[g_cKernelSize] =
{
{ -0.06, 0 },
{ -0.05, 0 },
{ -0.04, 0 },
{ -0.03, 0 },
{ -0.02, 0 },
{ -0.01, 0 },
{ 0.00, 0 },
{ 0.01, 0 },
{ 0.02, 0 },
{ 0.03, 0 },
{ 0.04, 0 },
{ 0.05, 0 },
{ 0.06, 0 },
};
static const float blurweight1[g_cKernelSize] =
{
0.002216,
0.008764,
0.026995,
0.064759,
0.120985,
0.176033,
0.199471,
0.176033,
0.120985,
0.064759,
0.026995,
0.008764,
0.002216,
};
texture texture1;
texture texture2;
texture texture3;
texture texture4;
texture finalbloomt;
bool setwarmbloom;
bool setcoldbloom;
bool sethbloom=false;
bool setvbloom=false;
float2 PixelKernel2[g_cKernelSize] =
{
{ 0, -0.006 },
{ 0, -0.005 },
{ 0, -0.004 },
{ 0, -0.03 },
{ 0, -0.02 },
{ 0, -0.01 },
{ 0, 0.00 },
{ 0, 0.01 },
{ 0, 0.02 },
{ 0, 0.03 },
{ 0, 0.004 },
{ 0, 0.005 },
{ 0, 0.006 },
};
float blurweight2[g_cKernelSize]=
{
0.002216,
0.008764,
0.026995,
0.064759,
0.120985,
0.176033,
0.199471,
0.176033,
0.120985,
0.120999,
0.121111,
0.120915,
0.120935,
};
float2 PixelKernel3[g_cKernelSize] =
{
{ -0.006, 0 },
{ -0.005, 0 },
{ -0.004, 0 },
{ -0.03, 0 },
{ -0.02, 0 },
{ -0.01, 0 },
{ 0.00, 0 },
{ 0.01, 0 },
{ 0.02, 0 },
{ 0.03, 0 },
{ 0.004, 0 },
{ 0.005, 0 },
{ 0.006, 0 },
};
static const float blurweight3[g_cKernelSize] =
{
0.002216,
0.008764,
0.026995,
0.064759,
0.120985,
0.176033,
0.199471,
0.176033,
0.120985,
0.064759,
0.026995,
0.008764,
0.002216,
};
sampler texture1_sampler=sampler_state
{
Texture=(texture1);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
sampler texture2_sampler=sampler_state
{
Texture=(texture2);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
sampler texture3_sampler=sampler_state
{
Texture=(texture3);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
sampler texture4_sampler=sampler_state
{
Texture=(texture4);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
sampler finalbloomt_sampler=sampler_state
{
Texture=(finalbloomt);
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
struct a
{
float4 position:POSITION;
float2 texcoord:TEXCOORD0;
float2 texcoord1:TEXCOORD1;
};
struct b
{
float4 position:POSITION;
float2 texcoord:TEXCOORD0;
float2 texcoord1:TEXCOORD1;
};
struct c
{
float4 position:POSITION;
float2 texcoord:TEXCOORD0;
float4 texcoord1:TEXCOORD1;
};
void v_s(in a IN,out c OUT){
float4x4 m=0;
m._11 = 0.5f;
m._22 = -0.5f;
m._33 = 1.5f;
m._41 = 0.5;
m._42 = 0.5;
m._43 = 0.5f;
m._44 = 1.0f;
OUT.position=IN.position;
OUT.texcoord=IN.texcoord;
OUT.texcoord1=mul(IN.position,m);
};
//bright pass///////////////////////////////////////
float4 bright_pass(in b IN):COLOR
{
float3 color = tex2D(texture1_sampler, IN.texcoord);
color *= 0.18 / ( 0.08 + 0.001f );
color *= ( 1.0f + ( color / ( 0.8 * 0.8 ) ) );
color -= 5.0f;
color = max( color , 0.0f );
color /= ( 10.0f + color );
return float4( color , 1.0f );
}
technique brightprocess{
pass p0{
ZEnable =false;
PixelShader=compile ps_3_0 bright_pass();
VertexShader=compile vs_3_0 v_s();
}
}
/////////////////////////////////////////////////////
//blur filter///////////////////////////////////////
float4 hblur(in c IN):COLOR
{
float4 color=0,color1=0,color2=0;
for(int i=0;i<13;i++)
{
color += tex2D(texture1_sampler, IN.texcoord+PixelKernel[i].xy)*blurweight1[i];
}
return (color)*bloomvalue;
}
technique hblurprocess
{
pass p0
{
ZEnable =false;
PixelShader=compile ps_3_0 hblur();
VertexShader=compile vs_3_0 v_s();
}
}
//blur filter///////////////////////////////////////
//blur filter///////////////////////////////////////
float4 vblur(in c IN):COLOR
{
float4 color=0,color1=0,color2=0;
for(int i=0;i<13;i++)
{
color += tex2D(texture1_sampler, IN.texcoord+PixelKernel1[i].xy)*blurweight1[i];
}
return (color)*bloomvalue;
}
technique vblurprocess
{
pass p0
{
ZEnable =false;
PixelShader=compile ps_3_0 vblur();
VertexShader=compile vs_3_0 v_s();
}
}
//blur filter///////////////////////////////////////
//finalbloom post////////////////////////////////////
float4 finalbloom_post(in c IN):COLOR
{
float4 color=0;
color=tex2D(texture1_sampler,IN.texcoord);
color+=tex2D(finalbloomt_sampler,IN.texcoord);
float4 filtertexture=tex2D(texture2_sampler,IN.texcoord+offset);
float4 lensfalres=tex2D(texture3_sampler,IN.texcoord);
float4 camerafilter=tex2D(texture4_sampler,IN.texcoord);
float4 finalcolor=0;
finalcolor=color+filtertexture+lensfalres+camerafilter*0.4;
if(setblendmapping!=0)
{
float3 normalfilter = 2*tex2D(undernormal_sampler, IN.texcoord) - 1;
color = tex2Dproj(finalbloomt_sampler, (IN.texcoord1*10)+float4(normalfilter,0));
color += tex2D(texture1_sampler, IN.texcoord);
float4 blendfilter = tex2D(underblend_sampler, IN.texcoord);
float4 filtertexture=tex2D(texture2_sampler,IN.texcoord);
float4 lensfalres=tex2D(texture3_sampler,IN.texcoord);
finalcolor=(color+filtertexture+lensfalres+camerafilter*0.4)*blendfilter.a;
}
if(setnormalmapping!=0)
{
float3 normalfilter = 2*tex2D(undernormal_sampler, IN.texcoord) - 1;
color = tex2Dproj(finalbloomt_sampler, (IN.texcoord1*10)+float4(normalfilter,0));
color += tex2D(texture1_sampler, IN.texcoord);
float4 filtertexture=tex2D(texture2_sampler,IN.texcoord);
float4 lensfalres=tex2D(texture3_sampler,IN.texcoord);
finalcolor=(color+filtertexture+lensfalres+camerafilter*0.4);
}
if(setnormalmapping!=0 && setblendmapping!=0)
{
float3 normalfilter = 2*tex2D(undernormal_sampler, IN.texcoord) - 1;
color = tex2Dproj(finalbloomt_sampler, (IN.texcoord1*10)+float4(normalfilter,0));
color += tex2D(texture1_sampler, IN.texcoord);
float4 blendfilter = tex2D(underblend_sampler, IN.texcoord);
float4 filtertexture=tex2D(texture2_sampler,IN.texcoord);
float4 lensfalres=tex2D(texture3_sampler,IN.texcoord);
finalcolor=(color+filtertexture+lensfalres+camerafilter*0.4)*blendfilter.a;
}
if(setwarmbloom!=0)
finalcolor.r+=0.2;
if(setcoldbloom!=0)
finalcolor.b+=0.2;
return finalcolor;
}
technique finalbloomprocess{
pass p0{
ZEnable =false;
PixelShader=compile ps_3_0 finalbloom_post();
VertexShader=compile vs_3_0 v_s();
}
}
//finalbloom post////////////////////////////////////
گنده تر از تو كه خيلي در اين كار وارد ترن كلي بحث كرديم و تايپكو بستن ميتوني بري بخوني.
حالا ميخواي بدوني چرا دوربين به قول خودت باگ داره چون روي اون اصلا تمركز نداشتم و برام مهم نيست چون در آينده درستش ميكنم و به اين خاطر ازت ممنونم. |
_________________ اهورا مزدا اين سرزمين مقدس را از هر گونه دشمن و خشكسالي به دور نگه دارد.
همانا از اسب افتاده ايم نه از اصل(مهدي اخوان ثالث)
www.sina-kian.com |
|
بازگشت به بالا |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
صفحه 1 از 5 |
تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد برو به صفحه 1, 2, 3, 4, 5 بعدي
|
|
شما نمي توانيد در اين انجمن نامه ارسال كنيد. شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد
|
|
|