Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> تالار علوم -> Pixel Shader & Vertex Shader
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

Pixel Shader & Vertex Shader
نويسنده
پيغام
mostafa_cpp
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 24 دي 1384
تعداد ارسالها: 488
محل سكونت: تهران


2 شنبه 4 ارديبهشت 1385 - 20:22
پاسخ بصورت نقل قول
سلام

ميشه كمي در مورد اين دو مورد توضيح بديد ؟
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Jack
کاربر اخراج شده


تاريخ عضويت: جمعه 11 دي 1383
تعداد ارسالها: 199
محل سكونت: Earth planet


4 شنبه 20 ارديبهشت 1385 - 03:07
پاسخ بصورت نقل قول
سلام
Shader ها كدهاي قابل فهم براي GPU هستند كه نحوه رندر كردن GPU رو مشخص مي كنن . چون وظيفه GPU رندر كردن پيكسل هاي روي Texture و vertex هاي روي Mesh هست با استفاده از Vertex Shader و Pixel Shader مي تونين افكتهاي جالبي مانند Bump Mapping كه از Pixel Shader استفاده مي كنه بسازيد . ممكنه از لحاظ تكنيكي Vertex Shader زياد به چشم نياد ولي مثلا در رندر كردن محيط هاي وسيع مثل دشت و صحرا مي تونين حركت گياهان رو با استفاده از Vertex Shader بوجود بيارين و به اين ترتيب بدون اينكه در محيط برنامه نويسي يك خط كد نوشته باشيد مي تونين حركت و دوران هاي تركيبي به اشياي مختلف بديد كه اينطوري برنامه تميز تر و سرعت رندر بالا مي ره .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
mostafa_cpp
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 24 دي 1384
تعداد ارسالها: 488
محل سكونت: تهران


4 شنبه 20 ارديبهشت 1385 - 18:57
پاسخ بصورت نقل قول
ممنون دوست من
كامل و واضح
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Jack
کاربر اخراج شده


تاريخ عضويت: جمعه 11 دي 1383
تعداد ارسالها: 199
محل سكونت: Earth planet


جمعه 22 ارديبهشت 1385 - 03:00
پاسخ بصورت نقل قول
بازم سوالي داشتي بپرس . خوشحال مي شم بتونم جوابشو بدم

يك نمونه كد shader براي ايجاد موج روي اب .

كد:
float4x4 mTransformation : VIEWPROJ;
float4 vMaterialColor;
float4 CurrentTime;
float4 mCameraPos;

// Set up an output structure defining the output to the pixel shader.
struct VS_OUTPUT_TEXCOORD0
{
  float4 Position : POSITION;
  float4 Diffuse  : COLOR0;
  float4 Specular  : COLOR1;
  float2 Texture0 : TEXCOORD0;
  float2 Texture1 : TEXCOORD1;
  float1 Fog: FOG;
};


VS_OUTPUT_TEXCOORD0 main
   (float3 vPos : POSITION, float3 vNormal : NORMAL, float2 vTexCoord0 : TEXCOORD0)
{
float3 vTransformedPosition = {0,0,0};
VS_OUTPUT_TEXCOORD0 Output;
float3 WorkPos;
float2 mCameraOffset;
float WaterScale = 1/1000.0f;
float ViewRadius = 128;
float TileScale = 128;
float2 ScrollSpeed = float2(0.000075, 0.000075);
float2 ScrollSpeed2 = float2(0.0002, 0.0002);

float RadiusByTile = ViewRadius*2 * TileScale;
float RadiusByTileByWater = RadiusByTile * WaterScale;
float TextureRepeat = 32;
float ooTileScale = 1.0f / (TileScale*8);

  mCameraOffset.x = (mCameraPos.x / TileScale) % TileScale;
  mCameraOffset.y = (mCameraPos.z / TileScale) % TileScale;

  WorkPos.x = ((vPos.x) * RadiusByTileByWater);
  WorkPos.y = vPos.y;
  WorkPos.z = ((vPos.z) * RadiusByTileByWater);

  // Transform vertex position
  Output.Position = mul(float4(WorkPos, 1.0f), mTransformation);

  Output.Texture0.x = vTexCoord0.x*TextureRepeat + mCameraPos.x * ooTileScale;
  Output.Texture0.y = vTexCoord0.y*TextureRepeat - mCameraPos.z * ooTileScale;
  Output.Texture0.xy += (CurrentTime.x*ScrollSpeed) % TileScale;

  Output.Texture1.x = vTexCoord0.x*TextureRepeat + mCameraPos.x * ooTileScale;
  Output.Texture1.y = vTexCoord0.y*TextureRepeat - mCameraPos.z * ooTileScale;
  Output.Texture1.xy += (CurrentTime.x*ScrollSpeed2) % TileScale;


  // Color of material
  Output.Diffuse = vMaterialColor;
  // Specular color
  Output.Specular = float4 (0,0,0,0);

  // Fog calculation
  Output.Fog.x = (RadiusByTile-Output.Position.z)/RadiusByTile;

  return Output;   
}
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
mostafa_cpp
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 24 دي 1384
تعداد ارسالها: 488
محل سكونت: تهران


جمعه 22 ارديبهشت 1385 - 17:21
پاسخ بصورت نقل قول
چشم ، اگه سوالي داشتم حتما مزاحمت ميشم
از شيدري هم كه گذاشتي ممنون
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
MGS
در حال رشد
در حال رشد


تاريخ عضويت: 3 شنبه 23 اسفند 1384
تعداد ارسالها: 47
محل سكونت: Arizona


2 شنبه 22 خرداد 1385 - 16:00
پاسخ بصورت نقل قول
نقل قول:

يك نمونه كد shader براي ايجاد موج روي اب .

ببخشيد با چه زبانيه؟ C++ ؟
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
mostafa_cpp
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 24 دي 1384
تعداد ارسالها: 488
محل سكونت: تهران


2 شنبه 22 خرداد 1385 - 18:20
پاسخ بصورت نقل قول
به زبون HLSL
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
GameOver
بازی ساز
بازی ساز


تاريخ عضويت: 2 شنبه 11 مهر 1384
تعداد ارسالها: 131


2 شنبه 22 خرداد 1385 - 19:19
پاسخ بصورت نقل قول
shadar هاي HLSL زبانی شبیه به ANSI C دارند و اين زبان خيلي بيشتر از down level shader ها كه با زباني شبيه به اسمبلي نوشته ميشن كارايي داره ولي هنوز از shader هاي سطح اسمبلي به دليل سازگاري با سخت افزار ها استفاده ميشه.
دستور هايي كه در اسمبلي نوشته ميشن program و دستور هايي كه در c نوشته ميشن shader مي گويند.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |