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





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> جابه جا کردن و چرخاندن اشیا در directx
 

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

جابه جا کردن و چرخاندن اشیا در direc
نويسنده
پيغام
khatarat
کاربر جدید
کاربر جدید


تاريخ عضويت: جمعه 11 بهمن 1387
تعداد ارسالها: 10


جمعه 11 بهمن 1387 - 00:59
پاسخ بصورت نقل قول
چه روش هایی برای چرخاندن اشیا وجود داره
مثلا من می خوام یه مش رو که لود کردم 20 درجه بچرخونم بعد بتونم مختصات ورتکس هاش رو بعد از دوران به دست بیارم.چطور می تونم این کار رو انجام بدم؟
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

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


تاريخ عضويت: شنبه 15 ارديبهشت 1386
تعداد ارسالها: 349
محل سكونت: Hell


جمعه 11 بهمن 1387 - 02:44
پاسخ بصورت نقل قول
سلام

جواب:
امکانش نیست!!

دورانها ( و بطور کلی تبدیلات ماترسی ) در Dx ( و همین طور OpenGL ) بعد از مرحله VertexAssembler ( و اگر از Programmable Pipline استفاده بشه ، قبل از VertexShader ) اعمال میشن و وقتی تبدیل انجام شد به اطلاعات دسترسی ندارید.

به طور کلی ، مختصات یه راس برای رسم به این شکل تایین میشه :
1 - مکان راس نسبت که مختصات داخلی ( Local ) / این همان مختصات vertex هاست که وقتی vertexbuffer رو lock کنید میتونید بخونیدشون یا بنویسید!
2 - World
3 - View
4 - Projection

مراحل 2 تا 4 روی مخصات local رئوس تاثیر نمیزارن.

برای تغییر مختصات local:
1 - از طریق برنامه ای که mesh رو ساخته عمل کنید و مثلا 20 درجه دوان توی 3dsmax بدید و از برنامه buffer رو lock کنید
2 - بافر رو با read و write قفل کنید ، هر راس رو دستی ( sin و cos ) دوران بدید و بعد اطلاعات رو write کنید.

امکان خواندن مختصات vertex که تبدیل روش انجام شده نیست ، مگر اینکه از Transform Vertex استفاده کنید، که در این صورت اصلا تبدیلات World View Projection روشون اعمال نمیشه و همون مختصات local برای Primitive Assembler ( قبل از Rasterizer وPixelShader ) ارسال میشه ...

در کل خوندن اطلاعات vertex کار جالبی نیست ( lock کردن بافر پرهزینه هست، مخصوصا اگه بخوای read کنی دیگه خیلی تاثیر میزاره ... )

_________________
And hell was so cold
All the vases are so broken
And the roses tear our hands all open
Mother mary miscarry
But we pray just like insects
The world is so ugly now
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
khatarat
کاربر جدید
کاربر جدید


تاريخ عضويت: جمعه 11 بهمن 1387
تعداد ارسالها: 10


جمعه 11 بهمن 1387 - 12:43
پاسخ بصورت نقل قول
خیلی ممنون که وقت گذاشتید و جواب دادید.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

انتقال از مكاني به مكان ديگه
نويسنده
پيغام
cna
در حال رشد
در حال رشد


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


1 شنبه 25 اسفند 1387 - 06:28
پاسخ بصورت نقل قول
من مي خوام مکان مدلي كه از فايل x. لود کردم رو تغییر بدم باید چکار کنم؟
چون مدل رو تو همون مختصاتی می ذاره که تو 3dsmax تعیین کردم.
ممکنه راهنمایی کنید؟

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

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


 
پرش به:  


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


unity3d

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