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





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

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

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


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


4 شنبه 18 آبان 1384 - 17:41
پاسخ بصورت نقل قول
اقا كوچول عزيز :
يه سوال ديگه برام پيش اومده : نميتوني نوري رو بر روي اون قرار بدي يعني اون 2 مثلث سياه هستند؟ ( بدليل نبودن نور )
بعد هم GUI يعني منو ها و قسمت پايين صفحه ( وشايد هم بالا) كه شامل تمام دكمه ها چيز هاي دو بعدي بازي ميشه ( كه به اون HUD هم ميگن )
حالا ميخاي براي انجينت HUD بسازي ؟
من با VB تا حالا پروژه Directx ننوشتم ولي اگه ميخاي HUD بسازي روش كليش رو بهت ميگم.
بعد هم اگه نرمال ها رو درست محسبه نكني دليل بر اين نميشه كه نوري رو دريافت نكني. نور نشون داده ميشه ولي به صورت نادرست .
يك روش براي پيدا كرن Normal يك مثلث رو ميگم كه از همه روش ها آسون تر هست‌:
در اين روش ما از نرمال Face براي نرمال 3 Vertex استفاده ميكنيم. فرض ميكنم كه Vertex ها اين ها هستند : P0 , P1 , P2 و نرمال هر كدوم n0 , n1 , n2 هست. حالا 2 تا Vector Face را بدست مياريم :
P1 - P0 = u
P2 - P0 = V
حالا نرمال Face هست :
n = u * v
نرمال هر ورتكس برابر هست با نرمال Face :
n0 = n1 = n2 = n
به اين هم بايد توجه داشته باشي كه ترتيب Vertex ها بايد جهت عقربه ساعت باشند وگرنه بردار نرمال جهت مخالف رو ميگيره.
اگه خاستي كد سي رو هم برات ميذارم.
موفق باشي.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


جمعه 20 آبان 1384 - 14:35
پاسخ بصورت نقل قول
سلام
خيلي ممنون از جوابتون من خودم ايراد را پيدا كردم من متريالي تعريف نكرده بودم تا نور روي ان بيافتد.
خيلي منون از راهنمايتان
نقل قول:

حالا ميخاي براي انجينت HUD بسازي ؟

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

_________________
Kochol Game Engine

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

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


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


جمعه 20 آبان 1384 - 22:52
پاسخ بصورت نقل قول
اميدوارم كه بتوني انجين خوبي رو بنويسي.
پيروز باشي. Mr. Green
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


3 شنبه 24 آبان 1384 - 18:24
پاسخ بصورت نقل قول
9 قسمت از اين مقاله رو نوشتم ولي هيچ كس توجه نميكنه . شايد هم اينا خيلي ابتدايي هستند و من خبر ندارم Crying or Very sad

توي اين قسمت ميخام در باره نقشه نور ها (light maps) يه مقدار توضيح بدم :

در بعضي از مواقع براي نورپردازي بهتر ما از يك Texture اضافه به نام light map در اشياء استفاده ميكنيم كه لايت مپ با بافت اصلي مخلوط ميشه و نورپردازي بهتري رو ارائه ميده ولي مشكل اينجاست كه اين مپ ها بايد قبل از اجرا محاسبه بشند و Ram زيادي رو اشغال ميكنند و در مقابل نور هاي پويا مانند فانوس كه توسط بازيكن كنترل ميشند عكس العملي رو نشون نميده. براي اين كه بتونيم اين مشكل رو حل كنيم بايد در هنگام اجراي برنامه و در هر فريم محاسبات لايت مپ رو انجام بديم كه اين روش باعث اشغال كردن رم زيادي ميشه و لي باز ميشه كه مقداري از اشغال شدن رم رو توسط لايت مپ جلوگيري
كرد مثل كم كردن تعداد رنگ هاي لايت مپ ولي باز هم هر چه قدر رنگ ها رو كم كنيد باعث كم شدن تعداد رنگ هاي نور ميشند. يك مشكل ديگه هم كه هست اين هست كه اگه چند تا دايناميك لايت با هم داشته باشيد باعث كند شدن محاسبات ميشه. به هر حال از اين روش در بازي ها هنوز هم استفاده ميشه .
بازي Quake III از لايت مپ ها براي محيط استفاده كرده و از مدل نور پردازي نقطه اي براي مدل هايي كه حركت ميكنند. نور هايي كه از قبل پردازش شده بر روي مدل هاي متحرك تاثير نميذارند ولي به ندرت توجه كسي را جلب ميكنه .
اينم مختصري درباره Light Map ها !
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


تاريخ عضويت: 5 شنبه 27 مرداد 1384
تعداد ارسالها: 499
محل سكونت: مشهد - One of back street boys


4 شنبه 25 آبان 1384 - 04:26
پاسخ بصورت نقل قول
نقل قول:

9 قسمت از اين مقاله رو نوشتم ولي هيچ كس توجه نميكنه

منظورتون چيه اين همه توجه 751 بازديد.
وجود شما و آقاي kocholه كه باعث رونق اين انجمن شده!

حالا بگزريم چند تا سوال درباره light map داشتم.

آيا تا حالا روش هايي براي حل مشكله حجم بالاي نورها در RAM پيدا شده؟

چرا بازي doom 3 با وجود اين همه نورهاي Dynamic و static زيبا با يك رم 256 خيلي عالي اجرا ميشه؟(البته سوال اولم به خاطر سوال دومم بود)

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

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


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


4 شنبه 25 آبان 1384 - 17:26
پاسخ بصورت نقل قول
نقل قول:

وجود شما و آقاي kocholه كه باعث رونق اين انجمن شده!

اين نظر لطف شماست اقاي سيلوستر ولي من فكر ميكنم كه... كسي خيلي به اين چيز ها اهميت نميده.
بگذريم.
ديگه خيلي مشكل فضا براي نور توي رم وجود نداره الان مشكل اصلي روي پردازش نور ها هست.(مثل پردازش بامپ مپ ها) اون مثالي رو كه زدم اگه دقت كرده باشي مال بازي Quake 3 هست و الان رم هاي خيلي بالاتري اومده.
من خيلي از بازي دوم 3 خبر ندارم ولي ميدونم كه از Light Map براي نور هاش استفاده نكرده.( اگر هم كرده خيلي كم ) در عوض اومده از Shader ها براي نور پردازي طبيعي تر استفاده كرده.(چون Shader ها قابل انعطاف هستند هر كاري با اونها قابل انجام هست) همون طور كه گفتم موفقيت اصلي دوم توي سايه ها و نور پردازي طبيعي بوده و همين هم 4 سال كار برده!
نقل قول:

چرا بازي doom 3 با وجود اين همه نورهاي Dynamic و static زيبا با يك رم 256 خيلي عالي اجرا ميشه؟

والا روي رم 512 من كه تيك ميزد. ولي اين به خاطر اين هست كه بازي دوم روي تكنيك هاي حذف اشياء اضافه خيلي وقت گذاشته.(BSP , PVS ,quadtree , ...) تا اونجايي كه خبر دارم چيزي كه توي بازي دوم فراوون هست Texture هست كه خودش خيلي رم ميگيره ( در اصل 3 Texture براي هر شيء) ولي به قول شما روي يك رم 256 به خوبي اجرا ميشه .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


تاريخ عضويت: 5 شنبه 27 مرداد 1384
تعداد ارسالها: 499
محل سكونت: مشهد - One of back street boys


5 شنبه 26 آبان 1384 - 07:29
پاسخ بصورت نقل قول
نقل قول:

والا روي رم 512 من كه تيك ميزد

البته روي high quality تيك نداشت (ultra quality هم داره)و بدون سيستم anti aliasing
البته كارت گرافيك من geforce fx 5200-128 MB RAM

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

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


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


5 شنبه 26 آبان 1384 - 15:49
پاسخ بصورت نقل قول
نقل قول:

البته كارت گرافيك من geforce fx 5200-128 MB RAM

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

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


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


2 شنبه 30 آبان 1384 - 01:47
پاسخ بصورت نقل قول
امروز يه خورده وقت پيدا كردم كه بتونم بقيه اين مطلب رو بنويسم.

در باره Texture ها يا همون بافت ها :

همون طور كه ميدونيد بافت ها يك قسمت مهم از هر بازي رو تشكيل ميدند كه به صورت معمول از يك عكس معمولي مثل سنگ فرش يا زمين يا ... درست ميشند و بعد اين عكس ها به اشياء سه بعدي اعمال ميشند يعني به صورت يك بافت بر روي جسم كشيده ميشند.
تا اينجا كه خوب هست ولي :
بافت هاي زياد باعث پر شدن رم ميشند و در نهايت كند شدن بازي. ولي راه هايي براي كم كردن حجم اين بافت ها هست
2 تا روش رو در اينجا توضيح ميدم:

ساده ترين راه ممكن و موثرترين راه فشرده كردن اين عكس ها هست كه باعث از دست دادن اطلاعات عكس نميشند و اين اطلاعات در CD هم جاي كمتري رو اشغال ميكنه. بازي Doom 3 از اين روش براي ذخيره كردن تمامي فايل ها استفاده كرده ( فايلي با پسوند pk3 , pk4 كه در اصل از الگوريتم فايل هاي Zip استفاده شده) .
يك روش ديگه براي كم كردن پهناي باند مورد استفاده Texture ها در كارت گرافيك روش Mip Mapping هست كه در اين روش ما عكس را قبل از تحويل به كارت گرافيك پردازش ميكنيم. به اين روش كه هر عكس از چندين كپي تشكيل ميشوند و هر عكس از نظر اندازه نصف عكس قبلي هست.(در زمان اجرا) دليل اين كار اين هست كه هميشه هر پيكسل از شيء‌ ما برابر با پيكسلي از عكس نيست و براي همين عكس از حالت طبيعي خارج ميشود . در كل اين روش براي اندازه دادن به عكس هم براي خارج نشدن از شكل طبيعي و هم براي كم كردن حجم عكس استفاده ميشه.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


4 شنبه 2 آذر 1384 - 12:26
پاسخ بصورت نقل قول
سلام آقاي GameOver,
شما فكر نمي كنيد كه مطالب شما خيلي پيشرفته هست من بايد يه بار از اول مطالب شما را بخونم

يه پيشنهاد
من هميشه ارزو داشتم چند نفر بشيم و با همديگه شروع به ياد گيري بكنيم الان هم مي گم يه تاپيك بزنيم و در انجا بحث كنيم و بگيم چه كتابي براي سي ++ بخونيم بعد ايبوك هاي خوب را بخونيم و شروع به ساخت يك گيم انجين از ابتدا بكنيم و پله ها ي پيشرفت را يكي پس از ديگري طي كنيم.

_________________
Kochol Game Engine

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

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 5 از 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 |