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





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

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

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


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


3 شنبه 10 آبان 1384 - 23:28
پاسخ بصورت نقل قول
مقالات بی نظیری هستند . خواهشا" ادامه بدید و چه بهتر که وارد بحث کد نویسی هم بشید . با تشکر
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

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


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


4 شنبه 11 آبان 1384 - 03:26
پاسخ بصورت نقل قول
من شنيدم كه اكثر انجين ها pach رو پشتيباني نميكنند.
درسته؟

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

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


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


4 شنبه 11 آبان 1384 - 04:29
پاسخ بصورت نقل قول
ممنونم از اين که به من اينقدر لطف داريد Laughing
در مورد patch ها هم بگم که تقريبا تمام انجين هاي معروف از Patch ها پشتي باني ميکنند مثل اين انجين ها :
Unreal Engine 3 و Power Render و Source ( اين زيري ها مجاني هستند )
NeoEngine و RealmForge GDK و Reality Factory و خيلياي ديگه که من نميشناسم!

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

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


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


4 شنبه 11 آبان 1384 - 21:09
پاسخ بصورت نقل قول
من هم هميشه مقالات شما را مي خوانم و لذت مي برم.

_________________
Kochol Game Engine

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

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


تاريخ عضويت: 3 شنبه 4 مرداد 1384
تعداد ارسالها: 95
محل سكونت: شيراز


5 شنبه 12 آبان 1384 - 02:21
پاسخ بصورت نقل قول
بنده هم مقالات شما را دنبال میکنم و منتظر مباحث بعدی هستم. ممنون ...

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

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


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


5 شنبه 12 آبان 1384 - 04:52
پاسخ بصورت نقل قول
ديگه ما رو داريد شرمنده ميكنيد. Very Happy
باز هم از تمامي شماها تشكر ميكنم كه انقدر به من لطف داريد و از اين خوشحالم كه مطالبم اندكي به كار اومده و اميدوارم كه بتونم همين يك ذره چيزي رو كه بلدم با شما دوستان تقسيم بكنم.
من تو اين چند روز مشغول درست كردن يه سايت هستم كه بتونم اين مطالب و كد هاي ديگه رو در اونجا بذارم كه خيلي هم مزاحم ديگران نشم و هر كس هم خواست بتونه سوالاتشو توي سايت بپرسه. براي همين اينجا رو دير به دير اپديت ميكنم( ديگه به بزرگي خودتون ببخشيد Question Very Happy ).

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

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


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


2 شنبه 16 آبان 1384 - 18:37
پاسخ بصورت نقل قول
سلام به دوستان عزيز .

قسمت 8 : ( نور پردازي و بافت ها (texture)
زماني كه توي بازي هستيم وقتي كه نور پردازي به خوبي اجرا شده باشه ما چيزي رو احساس نميكنيم ولي وقتي كه درست پياده سازي نشده باشه ... فاجعه شروع ميشه!
نور پردازي يكي از مهمترين قسمت هاي كار هست و خيلي از نظر پردازش زمان ميبره. يك نور پردازي خوب باعث ميشه كه يك بازي بتونه خيلي زيبا تر جلوه بده و همين طور برعكس يك نور پردازي بد هم باعث خراب شدن تمام بازي ميشه.مثلا بازي مثل Doom 3 بيشتر موفقيتش روي نورپردازي خيلي قوي و سايه هاي طبيعي بوده !

چندين راه براي نورپردازي هست:
يکي از راه ها Ranging هست که به سادگي مشخص ميکنه که يک چند ضلعي در چه جهتي از نور قرار داره و درصد روشنايي و رنگ نور رو از فاصله و زاويه چند ضلعي مشخص ميشه. بيشتر API ها چندين نور را در خود ساپورت ميكنند. مثلا OpenGl نور پردازي چند ضلعي و نور پردازي نقطه اي ( PerVertex ) و نور پردازي پيكسلي رو ساپورت ميكنه.

عكسي از 3dmark 2001 :
http://common.ziffdavisinternet.com/util_get_image/1/0,1425,sz=1&i=11236,00.jpg


در متد نور پردازي نقطه اي تصميم ميگيريد كه چه مقدار مثلث به يك Vertex اتصال دارند و بعد مجموع جهت هاي جندضلعي ها را بدست مياوريم يا همان بردار نرمال (Normal) و بعد بردار را به Vertex اختصاص ميدهيم. هر Vertex در شيء جهت متفاوتي رو دارا هستند به اين ترتيب ميتونيم که رنگ نور رو در شيء پخش کنيم. خوبي اين روش اين هست که به راحتي ميتونيم از قابليت کارت گرفيک براي محاسبات نور استفاده بکنيم (T&L). مشكل اين روش اين هست كه ما هيچ سايه اي رو نخواهيم داشت ( براي مثال اگه ما از اين مدل نور براي بدن يك انسان استفاده بكنيم و نور در طرف راست بدن باشه هر دو دست به يك اندازه روشن ميشند و هيچ سايه اي رو در دست چپ ( توسط بدن ) نميبينيم. براي مثال Quake III از اين روش نور پردازي استفاده کرده.
به اين روش در Groud Shading) Direct3D) ميگن.
روش برعكس روش بالا Flat Shading نام داره که در اين روش ما به انجين رندر دستور ميديم که نور رو يک بار در چند ضلعي محاسبه کنه يعني ميانگيني گرفته نميشه و باعث ميشه که تمام چند ضلعي يک رنگ داشته باشه و همين طور که از اسم اين روش پيدا هست تمام سطح يک چند ضلعي مسطح به نظر ميرسه.
در ضمن در روش( Groud Shading) ما ميتونيم به هر نقطه يک رنگ اختصاص بديم و لي در روش دوم در صورتي که به هر نقطه يک رنگ بديم در پايان فقط رنگ نقطه اول در تمام چند ضلعي تاثير ميذاره.

روش هاي زيادي براي نور پردازي وجود داره. يکي ديگه از اين روش ها Phong shading نام داره که مثالي براي نور پردازي پيکسلي هست. اين مدل براي نور پردازي از Texture استفاده ميكنه. و در عوض محاسبه تك تك رنگ هاي Vertex ها براي همه Vertex ها يك جور محاسبه رو انجام ميده. در اين روش به جاي استفاده از Vertex از پيكسل ها براي محاسبه نور استفاده ميكنه و نور پردازي خيلي واقعي تري رو درست ميكنه ولي به علت محاسبات زيادي كه داره ( از نظر CPU ) از اين روش خيلي كم در بازي ها استفاده ميشه!
از استفاده هاي اين مدل نور در شيء هايي كه درخشندگي زياد دارند مي توان نام برد.


تموم شد! PDT_014
واقعا نور توي بازي خيلي مهم هست اين ها روش هايي هستند كه خود API ها ساپورت ميكنند ولي خودتون هم ميتونيد از روش نور پردازي خودتون براي بازي استفاده كنيد كه مناظرتون رو طبيعي تر جلوه بديد كه البته خيلي هم كار اسوني نيست( ولي اگه بخواهيد 100 ٪ ميشه ).

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

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


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


3 شنبه 17 آبان 1384 - 07:44
پاسخ بصورت نقل قول
سلام
من در كلاسي كه به نام Kge2DSprite ايجاد كردم بر روي دوتا مثلث يك تصوير را نمايش مي دهم كه براي نقاط روي تصوير از بردار نورمال استفاده مي كنم كه جهت بردار نورمال من x=0 y=0 z=-1 هست و خود مثلثها روي صفحه xoy هستند ولي نم تونم نوري را برروي آنها قرار بدهم بايد چي كار كنم.

_________________
Kochol Game Engine

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

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


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


3 شنبه 17 آبان 1384 - 20:46
پاسخ بصورت نقل قول
كوچول عزيز:
نقل قول:

بر روي دوتا مثلث يك تصوير را نمايش مي دهم

1 - منظورت از يك تصوير همون Texture هست؟
نقل قول:

نقاط روي تصوير

2 - منظورت از نقاط همون Vertex ها هست؟
نقل قول:

خود مثلثها روي صفحه xoy هستند

3- صفحه xoy چي هست؟
4- بايد كدت رو ببينم Surprised

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

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


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


4 شنبه 18 آبان 1384 - 08:01
پاسخ بصورت نقل قول
سلام
منظور من را بسيار خوب متوجه شديد شما
3. هر نقطه اي كه z=0 باشد روي صفحه xoy قرار دارد
خوب اين gui اي كه گفتي يعني چ؟
4.اين هم كد
كد:

        Dim Verts(3) As CustomVertex.PositionNormalTextured
        Verts(0).SetPosition(New Vector3(0, CSng(sH * iHeight), 0))
        Verts(0).Tu = 0
        Verts(0).Tv = 0
        Verts(1).SetPosition(New Vector3(CSng(sW * iWidth), CSng(sH * iHeight), 0))
        Verts(1).Tu = iTexW
        Verts(1).Tv = 0
        Verts(2).SetPosition(New Vector3(0, 0, 0))
        Verts(2).Tu = 0
        Verts(2).Tv = iTexH
        Verts(3).SetPosition(New Vector3(CSng(sW * iWidth), 0, 0))
        Verts(3).Tu = iTexW
        Verts(3).Tv = iTexH
        For i As Integer = 0 To 3
            Verts(i).SetNormal(New Vector3(0, 0, -1))
        Next
        VB = New VertexBuffer(GetType(CustomVertex.PositionNormalTextured), 4, KgeScreen.d3dDevice, Usage.WriteOnly Or Usage.Dynamic, CustomVertex.PositionNormalTextured.Format, Pool.Default)
        VB.SetData(Verts, 0, LockFlags.None)

_________________
Kochol Game Engine

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

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