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





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

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  بعدي

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


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


4 شنبه 20 مهر 1384 - 19:40
پاسخ بصورت نقل قول
تایپ کردن فارسی واقعا سخته Neutral
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


5 شنبه 21 مهر 1384 - 16:46
پاسخ بصورت نقل قول
سلام
من امروز برای اولین بار یه برنامه با دایرکت ایکس ساختم ولی در قسمت رندری که ساختم فقط می شه نقاط را بصورت نقطه، خط و مثلث نمایش داد.
نقل قول:

حالا برايي مثال يه جعبه از 8 نقطه درست شده : هر نقطه براي يك گوشه و شامل 6 سطح هم هست كه يك سطح براي هر طرف

این کار فکر نکنم شدنی باشه چون من امروز هر چی با دایرکت تری دی کار کردم و اشکال 3 بعدی را دیدم همه از مثلث ها تشکیل شده بودند.
می شه یه توضیحی بفرمایید.

_________________
Kochol Game Engine

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

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


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


جمعه 22 مهر 1384 - 03:10
پاسخ بصورت نقل قول
من همون طور که گفتم اشکال اوليه که primitive ناميده ميشند مثلث ها هستند ولي راه هايي وجود دارند که ميشه بدون رسم مثلث يک شکل رو نمايش داد.(بعدا توضيح ميدم الان ساعت 3 صبح هست ) Confused
نقل قول:

شيء هاي اوليه يا Primitive كوچكترين واحدي هست كه يك كارت گرافيك ميتونه رندر كنه كه معمولا مثلث ها را به عنوان Primitive به حساب مياوريم .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


جمعه 22 مهر 1384 - 15:21
پاسخ بصورت نقل قول
نقل قول:

اشکال بعضی از برنامه نویس های تازه کار اینه که با یا گرفتن یه مورد فکر می کنند که میشه باهاش همه کاری انجام داد

هیچ مشکلی نداره که اینطوری فکر کنیم.

_________________
Kochol Game Engine

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

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


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


جمعه 22 مهر 1384 - 15:32
پاسخ بصورت نقل قول
در Direct3d به وسيله Index Buffer ميشه تعداد نقطه ها رو کم کرد مثلا اگه براي رسم يک مربع به 6 Point احتياج باشه (دو مثلث) با Index Buffer اون رو به 4 تا کاهش ميديم.
اگه Help Direct3d رو خونده باشي درباره Line Strip ها هم نوشته که به جاي Triangle Strip ميتوني از اون استفاده کني. Cool
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


جمعه 22 مهر 1384 - 18:39
پاسخ بصورت نقل قول
قسمت 4 درباره متدي هست که بهش تکنيک انتخاب ميگن : (Culling)

حالا فرض ميکنيم که ما يک محيط داريم که شامل صد ها هزار نقطه / مثلث هست. و ما از ديد اون شخص محيط رو ميبينيم در چنين محيطي بعضي از مثلث ها پشت بقيه قرار دارند و معلوم نيستند .
بيشتر برنامه نويس ها بيشتر از 300,000 تا نقطه رو نميتونند اداره کنند تا بتونند 60 فريم بر ثانيه( بهترين حالت يک بازي )رو بدست بيارند و کارت هاي گرافيک هم به راحتي اين حالت رو رندر نميکنند پس بايد از روشي استفاده کرد که اين مثلث ها رو که معلوم نيستند رو حذف کرد. به اين کار Culling يا انتخاب ميگن.


http://common.ziffdavisinternet.com/util_get_image/1/0,1425,sz=1&i=11191,00.jpg
مثلا اگه چيزي رو روي صفحه نميبينيد ( مثل پشت ديوار ها و ستون ها و ...) واقعا هم چيزي و جود نداره ! به وسيله Culling قسمت هاي نامريي از صحنه حذف ميشند .

خيلي راه ها براي حذف اين مثلث ها و جو دارند ولي اول بايد بدونيم که چرا کارت گرافيک اين ها رو ساپورت نميکنه. آيا کارتهايي مثل ATI x860 يا بالاتر نميتونه ان ميليون تا مثلث رو مديريت کنه ؟ يا نبايد اين کار رو بکنه ؟
اولين چيزي که بايد بدونيم مقدار مثلث در تجارت و در دنياي واقعي هست. مقداري که يک کارت ميتونه به اون برسه مقدار تجاري هست و فقط در تئوري ميتونه به مقدار دنياي واقعي برسه !
ولي اين رو هم اضافه كنم كه دستگاه هايي هم هستند كه اين كار رو انجام بدند.

به نظر شما ايا يک بازي فقط به پردازش مثلث ها ميپردازه ؟ کارت هايي که از فروشگاه خريداري ميشند براي کار هاي چند منظوره ساخته ميشند مثل پردازش Texture پردازش مثلث ها نورپردازي و ... و تمام اين ها بايد در يک زمان انجام بگيره(RealTime) و حتي کارتهاي جديد هم از پس اين همه کار برنمياند.
و در هر حال چيز هايي که در صحنه ديده نميشند ضروري نيستند مخصوصا اگه يک CPU پايين يا يک Ram کم داشته باشيم اين تکنيک ها خيلي به کار مياد.

بعدا در اين باره بيشتر توضيح ميدم . Surprised
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


شنبه 23 مهر 1384 - 00:10
پاسخ بصورت نقل قول
نقل قول:

در Direct3d به وسيله Index Buffer ميشه تعداد نقطه ها رو کم کرد مثلا اگه براي رسم يک مربع به 6 Point احتياج باشه (دو مثلث) با Index Buffer اون رو به 4 تا کاهش ميديم.
اگه Help Direct3d رو خونده باشي درباره Line Strip ها هم نوشته که به جاي Triangle Strip ميتوني از اون استفاده کني.

آها من هم همینو می خواستم

_________________
Kochol Game Engine

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

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


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


شنبه 23 مهر 1384 - 00:16
پاسخ بصورت نقل قول
نقل قول:

بعدا در اين باره بيشتر توضيح ميدم

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

_________________
Kochol Game Engine

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

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


تاريخ عضويت: 5 شنبه 21 آبان 1383
تعداد ارسالها: 56
محل سكونت: تهران


شنبه 23 مهر 1384 - 03:42
پاسخ بصورت نقل قول
!!!! Smile ما منتظر پنجميش هستيم

_________________
AAKH-1361.PersianBlog.Com

گروه طراي سيستم عامل

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

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


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


4 شنبه 27 مهر 1384 - 03:37
پاسخ بصورت نقل قول
ميبخشيد که دير اينو فرستادم ولي باور کنيد کارم زياد بود به هر حال اينم قسمت 5.
( اينو بگم که اين يکي از بقيه يکم جالب تر هست )
متد هاي اوليه انتخاب يا همون Culling :

اسون ترين روش براي اين کار تقسيم کردن map به چندين قسمت هست که هر قسمت داراي ليستي از قسمت هاي قابل ديد ديگر هست. با اين راه فقط ليستي از نقاط قابل ديد از نقطه دوربين رو داريم حالا چگونه اين ليست رو درست ميکنيم قسمت اصلي کار هست که بازم شامل چندين راه ميشه مثل BSP Tree ها و Portal ها و ...

دوتاشو در اينجا ميگم که از همه مهم تر هستند :

اگر تا حالا Map هاي Counter Strike رو ساخته باشيد يا ديده باشيد به احتمال زياد اسم BSP رو ديديد اين کلمه به معناي (Binary Space Partitioning) هست که به فارسي ميشه: (قسمت بندي دودويي فضا) به هر حال داشتم ميگفتم... اين راهي براي تقسيم فضا به قسمت هاي کوچکتر هست و با اين کار راحت تر ميشه فهميد چه قسمتي از Map ديده ميشه و چه قسمتي ديده نميشه و براي نرم افزار هايي که از سخت افزار براي محاسباتشون استفاده نميکنند (GPU) خيلي موثرتر هست. کار ديگه که ميشه با اين تکنيک انجام داد اينه که به راحتي ميشه بفهميم که اشياء در کجا قرار دارند.
راستي اينو هم بگم که اولين بار اين تکنيک توسط بازي Doom به وجود اومد .

اينم مدل ساده BSP Tree
http://common.ziffdavisinternet.com/util_get_image/1/0,1425,i=11192,00.gif

در مدل پرتال Portal هر محيط يا همون اتاق به وسيله مدل خودش ساخته ميشه و به وسيله درها يا همون پرتال ها از هم جدا ميشند و از در ها اتاق هاي ديگه رو ميشه مشاهده کرد و Renderer هر قسمت رو به صورت يک صحنه جدا در نظر ميگيره و اين تکنيک براي هر Engine الزامي هست. چون در کل از کار اضافه جلوگيري ميکنه.

حالا براي مثال در بازيهاي FPS که تعداد زيادي مثلث در اون وجود داره چيز مهمي که بايد استفاده بشه حذف کردن چيزهايي هست که ديده نميشه. همين امر براي شبيه سازي بازيهاي هوا نوردي هم صدق ميکنه چون يک بازيکن فضاي زيادي رو در روبه روش ميبينه و يک تکنيک خوب باعث ذخيره کردن مقدار زيادي CPU و GPU ميشه . براي بازيهايي که دوربين در او کنترل ميشه (مثل بازيهاي استراتژيک ) اين کار مقداري اسانتر هست.
بارها اين قسمت از Renderer به وسيله نرم افزار پياده ميشه و به کارت گرافيک محول نميشه به اين صورت بازي بهتر ميتونه از کارت گرافيک استفاده کنه .

اينم از قسمت 5

با اين دويستو خورده بازديد كننده هيچكس يه سوال هم براش پيش نيومده Shocked
راستي اگه پيشنهادي ( خداي ناكرده انتقادي ) چيزي هم بود بگيد كه من شرمنده نشم Question
به هر حال هر كس سوالي داشت تا اونجايي كه ميتونم دريغ نميكنم Arrow
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 2 از 10 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  بعدي


 
پرش به:  


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


unity3d

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