ورود

View Full Version : راهنمایی در مورد انعکاس نور



parhamm
پنج شنبه 15 تیر 1391, 11:45 صبح
سلام به همه ی دوستان عزیز
من می خواستم یک آونگ شبیه سازی کنم ومی خواهم کاری کنم که نور توش انعکاس پیدا کنه ولی نمی دونم چه جوری اگه می شه لطفا کمکم کنید!

Ananas
پنج شنبه 15 تیر 1391, 14:36 عصر
سلام.
به روش های مختلفی میشه این کار رو انجام داد. بستگی داره که شما چه کیفیتی رو لازم دارید و اینکه چقدر میخواید رو این قسمتش وقت بگذارید.
اگه نمایش شما دو بعدی باشه بهتره از یه عکس استفاده کنید به این شکل که یک دایره ی سایه خورده که روی اون یک سفیدی دیده میشه و شبیه یک کره ی براق هست رو در محل آونگ نمایش بدید. اگرم می خواید از عکس استفاده نکنید و با استفاده از GDI کره رو رنگ کنید پیشنهادم اینه که یک دایره رو بکشید بعد یک گوشه ی اون البته داخل دایره، با رنگ سفید و رنگ روشنتر همون رنگ کره، یک داره ی کوچک تر بکشید. اینطوری حالت براقیت رو به طور ساده شبیه سازی کردید.
اگه از نمایش سه بعدی استفاده می کنید مثلا با Direct3D یا OpenGL نمایش رو انجام می دید، به دنبال مطالبی در مورد Specular و Light باشید. عبارتهای مترادف برای کسب اطلاعات بیشتر :
Material
Diffuse
Ambient
Specular level
Reflection
و اما یک راه ساده تر در صورتی که می خواید سه بعدی باشه :
استفاده از فایرمانکی در c++builder که به راحتی یک کره می تونید داشته باشید و یک منبع نوری که روی اون برق افتاده و میتونید از طریق کد، مکان کره رو تغییر بدید. از این جهت سده هست که لازم نیست کار با OpenGL و یا Direct3D رو بلدباشین.
یک راه دیگه که خیلی سخت تره ولی واقعی تر و طبیعی تره، استفاده از شیدر ها در دایرکت تری و یا رفلکشن با استفاده از Environment map به شکل ریل تایم هست که با استفاده از Cube Map تصویر محیط اطراف رو تو کره نمایش میدید که مثل یک آیینه دیده بشه.