আমি একটি 3D এক্সএনএ গেমের সাথে ছায়া যুক্ত করার চেষ্টা করতে চাই। আমি একটি আলো এবং একটি ক্যামেরা দিয়ে কিছু পরীক্ষার পরিবেশ স্থাপন করেছি। যাইহোক, আমি আমার পদ্ধতির সাথে নিদর্শনগুলিতে চালাচ্ছি।
চূড়ান্ত ফলাফলটি রেন্ডার করতে আমি http://pastebin.com/zXi0hmsU থেকে শেডার কোড এবং ছায়ার মানচিত্র তৈরি করতে http://pastebin.com/rY4Gcj9N ব্যবহার করছি । কোডটি বেশ সোজা এগিয়ে রয়েছে এবং আলোর দৃষ্টিকোণ থেকে গভীরতার মানচিত্রের উত্পাদন জড়িত থাকে, তারপরে একে ক্যামেরার স্পেসে প্রজেক্ট করে এবং ফলাফলগুলি অনুসন্ধান করে।
তবে বেশিরভাগ কোণ থেকে আমি বেশ কুৎসিত ফলাফল পাচ্ছি
দৃশ্যে কিছু সাধারণ কিউবস রয়েছে (হাতের সাহায্যে নির্মিত, বাইরে মুখোমুখি, ব্যাকফেসটি কুল্ড হয়েছে), একটি হালকা (উপরের বাম কোণে ছায়ার মানচিত্র দেখানো হয়েছে - ঠিক আছে দেখায়) এবং একটি ক্যামেরা রয়েছে।
ছায়া মানচিত্রের জন্য আমার রেন্ডারট্যাজেট শুরু করে
int shadowMapSize = 512;
RenderTarget2D shadowMap = new RenderTarget2D(GraphicsDevice, shadowMapSize,
shadowMapSize, true, GraphicsDevice.PresentationParameters.BackBufferFormat,
DepthFormat.Depth24Stencil8);
GraphicsDevice.SetRenderTarget(shadowMap);
GraphicsDevice.Clear(Color.White);
GraphicsDevice.DepthStencilState = DepthStencilState.Default;
এরপরে, CreateShadowMap
এফেক্টটি প্রয়োগ করা হয়, তারপরে ল্যামবার্টভিথশ্যাডোস ইফেক্ট হয়। অবশেষে, ছায়া মানচিত্রটি একটি ব্যবহার করে আঁকা SpriteBatch
।
কোডের বাকী অংশটি শেডারে সঠিক মান সরবরাহ করে। প্রয়োজনে আমি এটি সরবরাহ করতে পারি।