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





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> >> سوال و جواب <<
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, 4 ... 15, 16, 17  بعدي

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


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


3 شنبه 2 آبان 1385 - 13:33
پاسخ بصورت نقل قول
بله مهدي جان
تمام اين پستها جديد هستند.

Kochol جان ولي توي msdn با استفاده از همين مش هاي آماده تكسچرگذاري رو انجام داده.

مشكل ديگري كه هست اينه كه من نحوه طراحي مش بوسيله ورتكس رو نمي دونم .
اگر لطف كني و توضيحي هم در اون باره بدي ممنون مي شم.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

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


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


3 شنبه 2 آبان 1385 - 15:57
پاسخ بصورت نقل قول
من اطلاع زيادي از فورمتهاي ورتكس ندارم ولي ظاهرا فورمتش PositionNormal هست.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

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


تاريخ عضويت: جمعه 26 فروردين 1384
تعداد ارسالها: 402
محل سكونت: تهران


5 شنبه 4 آبان 1385 - 14:47
پاسخ بصورت نقل قول
خوب بچه ها من زیاد کاری ندارم که شما با چی کار می کنید ( وی بی و یا سی شارپ ) ولی قصد دارم با C++ یه توضیح کوچیک در مورد ساختارهای موجود ورتکس ها و نحوه تکسچر کردن اونا رو با یه مثال ساده نشون بدم .
اول اینکه چند نوع پرچم برای ورتکس وجود داره که با ترکیب اونا با هم می تونیم به فرمت دلخواهمون دست پیدا کینم و در زیر می تونید اونارو ببینید .
و این تعاریف از نوع قابل انعطاف هستند ( FVF ) و ما می تونیم خیلی سریعتر اونا رو به کارت گرافیک بفرستیم .

D3DFVF_XYZ


نشون میده که ورتکس فرمت شامل مختصات X - Y و Z یک ورتکس ترانسفورم نشده است . و منظور از ترانسفورم اینه که هنوز به مختصات صفحه نمایش تبدیل نشده .
و متغیرهای اون
float, float, float



D3DFVF_XYZRHW

نشون میده که ورتکس فرمت شامل مختصات x - y و z به علاوه یک مقدار تبدیل شده از ورتکس به مختصات صفحه که در ساختارهای انجین از اون استفاده میشه .
و متغیرهای اون
float, float, float, float


D3DFVF_DIFFUSE


نشون میده که ورتکس فرمت شامل یه رنگ 32 بیتی برای یک ورتکس هستش که برای منتشر کردن نور استفاده میشه .
و متغیرهای اون
DWORD



D3DFVF_SPECULAR


مثل قبلی ولی مورد استفاده نورهای وابسته
و متغیرهای اون
DWORD

D3DFVF_TEX0
تا
D3DFVF_TEX8

نشون میده که ورتکس فرمت شامل مختصات برای هر تکسچری هستش که می خواد درخواست بشه برای یک مدل .
و متغیرهای اون
float, float

پرچم های بیشتری وجود داره و اونا رو می تونید که اسناد همراه DXSDK پیدا کنید .

خوب حالا پرچمهای مورد نیاز رو با هم ترکیب می کنیم و ساختاری هم برای ورتکس فرمت انتخاب کرده تعریف می کنیم چیزی شبیه کد زیر :

كد:

struct CUSTOMVERTEX {FLOAT X, Y, Z; DWORD COLOR; FLOAT U, V;};
#define CUSTOMFVF (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)

تو این کد تنها چیز عجیب شاید متغیرهای V-U باشند . این دو متغیر همان مختصات تکسچر هستند که در پرچمهای بالا توضیح دادم .

خوب حالا لازمه که برای استفاده از ساختار COSTOMVERTEX و همچنین مقدار دهی اون به روش زیر عمل کنیم . البته توجه کنید که کد زیر برای مربع نوشته شده .

كد:

struct CUSTOMVERTEX t_vert[] =
{
{1, 0, -1, 0xffffffff, 1, 0,},
{ -1, 0, -1, 0xffffffff, 0, 0,},
{ 1, 0, 1, 0xffffffff, 1, 1,},
{ -1, 0, 1, 0xffffffff, 0, 1,},
};


سه مقدار اول مختصات ورتکس ، مقدار بعدی رنگ و دو مقدار اخر مختصات تکسچر که باید ست بشه .

و حالا اگه شما تکسچری رو به این چهار ضلعی ( مربع ) نسبت بدین ، هر کدوم از لبه های مربع با لبه های تکسچر پوشیده خواهد شد ( در غیر این صورت مختصاتهای غیر واقعی و یا نا درست تعریف شده )
خوب حالا با تابع مربوط به لود تکسچر این کارو انجام می دیم :

كد:


D3DXCreateTextureFromFile(d3ddev,   
                          L"texture.bmp",   
                          &texture_1);




و البته به علاوه این کد که مسئول ست کردن تکسچر رو داره .

كد:


d3ddev->SetTexture(0, texture_1);


و کدهای مربوط به رندر ...
البته من از خیلی از کد ها فاکتور گرفتم و احساس کردم که نیازی بهشون نیست .
خوب دیگه مثال تموم شد و امیدوارم که مشکل شهروز جان هم حل شده باشه .

در مورد ساخت مش بوسیله ورتکس که اگه دستی ساخته بشه خوب خیلی سخته .
برای ساخت یه مکعب کلی باید با سیستم های مختصاتی و x-y-z سر و کله زد تا شاید بشه شاید نشه و یه شکل عجیب و غریب بدست نیاد . بهترین راه استفاده از نرمافزارهای طراحی مش هستش که البته همون طور که بهتر از من می دونید اونا فایل نهایی ( که شامل همه ورتکسات ) رو در قالب پسوند مورد نظر نرم افزار ذخیره می کنند و این خودش مقداری کد لازم داره . البته به استثنای *.X که فرمت خود DX هستش . و نرم افزار پیشنهادی من برای اون هم MILK shape هستش . که علاوه بر این فرمت ، فرمت اکثر مدلهای طراحی شده برای بازی رو هم ساپورت میکنه .
موفق باشید .

_________________
به امید روزی که کلمه ای کاش را نگوئیم ....
وبلاگ تیم توسعه سورنا
www.gamedev.ir
ادیتور سورنا
http://sourena.gamedev.ir/
ادیتور سیمرغ
http://simorgh.SourenaGames.com
بازی دوازده رخ - 12 رخ (سیاوش)
www.SourenaGames.com
شرکت نرم افزاری سورنا پردازش
WWW.SOURENACO.IR
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

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


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


5 شنبه 4 آبان 1385 - 17:06
پاسخ بصورت نقل قول
بسيار عالي
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

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


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


5 شنبه 4 آبان 1385 - 17:41
پاسخ بصورت نقل قول
ممنون مهدی جان
مشکل برطرف شد.

اشکال در تعریف پرچم ها بود که اشکال پیشفرض قابلیت تعریف این گزینه را نداشتند.
بنابر این از فایلهای X استفاده کردم :

http://xs108.xs.to/xs108/06434/3dTV.gif


باز هم ممنون.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

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


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


جمعه 5 آبان 1385 - 13:13
پاسخ بصورت نقل قول
يك سوال ديگر :

من چگونه مي توانم خطوط دو بعدي را در محيط سه بعدي ( نه دو بعدي ) رسم كنم ؟
مانند Grid .

ممنون.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


1 شنبه 7 آبان 1385 - 13:47
پاسخ بصورت نقل قول
سلام
نقل قول:

من اطلاع زيادي از فورمتهاي ورتكس ندارم ولي ظاهرا فورمتش PositionNormal هست.

خوب مشكل همين جا بوده ديگه اين نوع فرمت نمي تونه تكستچر بگيره.

نقل قول:

برای ساخت یه مکعب کلی باید با سیستم های مختصاتی و x-y-z سر و کله زد تا شاید بشه شاید نشه و یه شکل عجیب و غریب بدست نیاد .

به نظر من كه زياد هم سخت نيست فقط كافيه 6 تا مربع بسازي يا از ايندكس ها استفاده كني كه با 8 تا ورتكس يه مكعب بسازي روشش هم اول مربع جلويي و راستي و پشتي و چپي و بالايي و پاييني. ولي خوب استفاده از فايل هاي .x گزينه بهتري هست.

نقل قول:

D3DFVF_XYZRHW

اين w رو مي توني يه توضيحي بدي من كه خودم به صورت تجربي تغييرش دادم (مقدارش رو زياد كردم البته براي يه ورتكس) وقتي از رنگ استفاده مي كردم اون رنگ درصد بيشتري از مثلث رو به خودش اختصاص مي داد.

نقل قول:

من چگونه مي توانم خطوط دو بعدي را در محيط سه بعدي ( نه دو بعدي ) رسم كنم ؟
مانند Grid .

با نوع ورتكس هاي positioncolored و device.drawlinelist مي توني اين كارو بكنيد من يه تابع براي خودم نوشته بودم كه بعد نيست كدشو ببينيد ولي اين تابع براي انجينم هست تبديل كردنش به MDX زياد سخت نيست.
كد:

kge::gfx::Vertex3C *CreateGrid(int WCount, float Width, int HCount, float Height,
                        kge::u32 &nVerts, kge::gfx::Color color)
{
   kge::gfx::Vertex3C *v = new kge::gfx::Vertex3C[2*(WCount+HCount)];
   nVerts = 2*(WCount+HCount);
   for (int i=0; i<WCount*2; i+=2)
   {
      v[i].pos.X = i / 2 * Width;
      v[i].pos.Y = 0.0f;
      v[i].pos.Z = 0.0f;
      v[i].c = color;
      v[i+1].pos.X = i / 2 * Width;
      v[i+1].pos.Y = 0.0f;
      v[i+1].pos.Z = (HCount-1)*Height;
      v[i+1].c = color;
   }
   for (i=WCount*2; i<(WCount*2+HCount*2); i+=2)
   {
      v[i].pos.X = 0.0f;
      v[i].pos.Y = 0.0f;
      v[i].pos.Z = (i-WCount*2) / 2 * Height;
      v[i].c = color;
      v[i+1].pos.X = (WCount-1)*Width;
      v[i+1].pos.Y = 0.0f;
      v[i+1].pos.Z = (i-WCount*2) / 2 * Height;
      v[i+1].c = color;
   }
   return v;
} // CreateGrid

كه vertex3c همون positioncolored هست بيشتر به محاسبات x,y,z نگاه كن.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

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


تاريخ عضويت: جمعه 26 فروردين 1384
تعداد ارسالها: 402
محل سكونت: تهران


1 شنبه 7 آبان 1385 - 20:31
پاسخ بصورت نقل قول
سلام دوستان
ببین شهروز جان اگه منظورت چیزی شبیه شکل پایین به ضمیمه فایل lines&points.exe باشه ،


[img]
http://show.imagehosting.us/show/1709955/0/nouser_1709/T0_-1_1709955.GIF
[/img]
[url]
http://rapidshare.com/files/1173029/lines_points.exe.html
[/url]

( از کلیدهای جهت دار می تونید برای تغییر مکان دوربین استفاده کنید که با کدهای خیلی ساده نوشته شده اند )
که چیزی سختی نیست و فقط کافیه که مختصات گرید هاتو دربیاری ، که البته کمی باید با سیستم های مختصاتی کار کنی تا بتونی کل ورتکس هاشو در بیاری تا مثل من یه گرید داشته باشی . البته می تونی رنگشو هم مثل بقیه گرید ها خاکستری تعریف کنی .
یه چرخش ساده براش گذاشتم تا سه بعدی بودنش رو هم نشون داده باشم .
و اما چطور این کار انجام میشه :
فقط کافیه که مختصات ابتدا و انتهای هر گرید رو دربیاری و در ساختاری که قبلا توضیح دادم مقدار دهی کنی ( البته هم افقی و هم عمودی ) ( و اگه می خوای مثل مایا و 3 دی مکس گرید داشته باشی باید محور z رو هم لحاظ کنی ) و بعد فرمان رسم اشیاء رو تغییر میدی و تابع DrawPrimitive رو با پرچم مربوط به رسم خط مقدار دهی می کنی.
همون طور که می دونید دو نوع پرچم برای رسم خط وجود داره :

D3DPT_LINELIST
D3DPT_LINESTRIP

در پایان پست میتونید کل پرچمها رو مشاهده کنید ( نقطه ، خط ، مثلث )
نوع اول خطهای جدا از هم رسم می کنه و نوع دوم خطهای متصل به هم .
برای این کار ما از نوع اول استفاده می کنیم .
کد مربوط به ساختار ورتکسمون چیزی شبیه این میشه :

كد:

struct CUSTOMVERTEX t_vert[] =
{
    // vertex hayeh amodi
    { 0.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 0.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 2.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 2.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 4.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 4.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 6.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 6.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 8.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 8.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 10.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 10.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 12.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 12.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 14.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 14.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 16.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 16.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 18.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 18.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 20.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 20.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 22.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 22.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 24.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 24.0f, 50.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    //vertex hayeh ofoghi
    { 0.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 50.0f, 0.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 0.0f, 2.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 50.0f, 2.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 0.0f, 4.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 50.0f, 4.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 0.0f, 6.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 50.0f, 6.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 0.0f, 8.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 50.0f, 8.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 0.0f, 10.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 50.0f, 10.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 0.0f, 12.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 50.0f, 12.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 0.0f, 14.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 50.0f, 14.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 0.0f, 16.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 50.0f, 16.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 0.0f, 18.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 50.0f, 18.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 0.0f, 20.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 255), },
    { 50.0f, 20.0f, 3.0f, D3DCOLOR_XRGB(0, 255, 0), },
    { 0.0f, 22.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 50.0f, 22.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
    { 0.0f, 24.0f, 3.0f, D3DCOLOR_XRGB(255, 0, 0), },
    { 50.0f, 24.0f, 3.0f, D3DCOLOR_XRGB(0, 0, 255), },
};



و کد مربوط به رسم هم که البته من کدهای مربوط به ترانسفر و ترانزلیت و ... رو بازم فاکتور گرفتم ( همه رو تو قالب مقاله به زودی می فرستیم رو آنتن سایت ) :
کد مربوط به رسم نقاط :

كد:

//noghate amoudi
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 0, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 2, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 4, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 6, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 8, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 10, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 12, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 14, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 16, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 18, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 20, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 22, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 24, 2);
//noghate ofoghi
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 24, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 26, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 28, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 30, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 32, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 34, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 36, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 38, 2);   
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 40, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 42, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 44, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 46, 2);
d3ddev->DrawPrimitive(D3DPT_POINTLIST, 48, 2);


و کد رسم خطها :


كد:

//khotote amoudi
d3ddev->DrawPrimitive(D3DPT_LINELIST, 0, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 2, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 4, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 6, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 8, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 10, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 12, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 14, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 16, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 18, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 20, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 22, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 24, 1);
//khotote ofoghi
d3ddev->DrawPrimitive(D3DPT_LINELIST, 24, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 26, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 28, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 30, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 32, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 34, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 36, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 38, 1);   
d3ddev->DrawPrimitive(D3DPT_LINELIST, 40, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 42, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 44, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 46, 1);
d3ddev->DrawPrimitive(D3DPT_LINELIST, 48, 1);



در مورد تابع drawprimitive() باید بگم که ، مقدار اول همون پرچمهای گفته شده هستش و مقدار بعدی نقطه شروع رسم هستش و مقدار بعدی تعداد شی مورد نظر که قراره رسم بشه ( نقطه ، خط ، مثلث ) .

خوب حالا می خوام اون پرچمهایی رو که گفتم یکی یکی توضیح بدم .

D3DPT_POINTLIST
یه نقطه رسم می کنه

[img]
http://s12.imagehosting.us/uploadpoint/imagehosting_upload_storage/nouser_1709/T1_-1_1709827.GIF
[/img]
D3DPT_LINELIST
یه خط جدا رسم می کنه ( منظور از جدا اینکه به خط دیگه ای وصل نشده )

[img]
http://show.imagehosting.us/show/1709836/0/nouser_1709/T0_-1_1709836.GIF
[/img]

D3DPT_LINESTRIP
یه خط متصل رسم می کنه ( چیزی شبیه poly line در اتوکد)

[img]
http://show.imagehosting.us/show/1709841/0/nouser_1709/T0_-1_1709841.GIF
[/img]

D3DPT_TRIANGLELIST
یه مثلث جدا رسم می کنه

[img]
http://show.imagehosting.us/show/1709844/0/nouser_1709/T0_-1_1709844.GIF
[/img]

D3DPT_TRIANGLESTRIP
یه مثلث رسم می کنه که متصل به مثلث مجاور و یا کناریش باشه ( برای ایجاد شکلهایی مثلث مربع ، مستطیل و ... )

[img]
http://show.imagehosting.us/show/1709847/0/nouser_1709/T0_-1_1709847.GIF
[/img]

D3DPT_TRIANGLEFAN
شبیه پرچه بالایی با این تفاوت که همیشه یه ورتکس بین همه مثلث ها مشترکه .

[img]
http://show.imagehosting.us/show/1709849/0/nouser_1709/T0_-1_1709849.GIF
[/img]

کوچول جان نه ، اون مقدار برای اینه که دیگه نیاز به وارد شدن به pipleline برای تبدیل مختصات 3 بعدی به 2 بعدی صفحه نمایش رو ندارید و اگه از پرچم اونو استفاده نکنی باید مراحل تبدیل مختصاتی رو انجام بدید .

موفق باشید ...

_________________
به امید روزی که کلمه ای کاش را نگوئیم ....
وبلاگ تیم توسعه سورنا
www.gamedev.ir
ادیتور سورنا
http://sourena.gamedev.ir/
ادیتور سیمرغ
http://simorgh.SourenaGames.com
بازی دوازده رخ - 12 رخ (سیاوش)
www.SourenaGames.com
شرکت نرم افزاری سورنا پردازش
WWW.SOURENACO.IR
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

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


تاريخ عضويت: جمعه 26 فروردين 1384
تعداد ارسالها: 402
محل سكونت: تهران


1 شنبه 7 آبان 1385 - 20:33
پاسخ بصورت نقل قول
بچه ها شرمنده هر کاری کردم عکسها رو لود نکرد .
از طریق لینکها ببینید تا شاید بعدا درست شد .

_________________
به امید روزی که کلمه ای کاش را نگوئیم ....
وبلاگ تیم توسعه سورنا
www.gamedev.ir
ادیتور سورنا
http://sourena.gamedev.ir/
ادیتور سیمرغ
http://simorgh.SourenaGames.com
بازی دوازده رخ - 12 رخ (سیاوش)
www.SourenaGames.com
شرکت نرم افزاری سورنا پردازش
WWW.SOURENACO.IR
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Ali
مدیر کل
مدیر کل


تاريخ عضويت: شنبه 20 تير 1383
تعداد ارسالها: 2983
محل سكونت: On the edge


1 شنبه 7 آبان 1385 - 21:56
پاسخ بصورت نقل قول
اطلاعات خیلی خوبی بود. استفاده کردیم...

_________________
پی سی گیمرز - آرشيو بزرگ بازی های کامپیوتری
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 3 از 17 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, 4 ... 15, 16, 17  بعدي


 
پرش به:  


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


unity3d

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