এক্সএনএ ৪.০-তে স্প্রাইট স্কেলিংয়ের জন্য আমি টেক্সচার ফিল্টারিং কীভাবে অক্ষম করব?


22

আমার একটি স্প্রিট রয়েছে যা আমি এক্সএনএ-তে স্কেল বাড়ানোর চেষ্টা করছি, তবে এক্সএনএ এমন কিছু টেক্সচার ফিল্টারিং প্রয়োগ করছে যা এটি মসৃণ করে তোলে এবং এটিকে কুরুচিপূর্ণ দেখায়। আমি এটি চাইবেগের পরিবর্তে কেবল পিক্সেল দ্বিগুণ করা। আমি কীভাবে এটি সম্পাদন করব?

উত্তর:


28

আপনাকে স্যাম্পলার স্টেট সেট করতে হবে। স্প্রিটব্যাচের জন্য ডিফল্ট হ'ল SamplerState.LinearClamp(যেমন: লিনিয়ার ইন্টারপোলেশন - মসৃণ / অস্পষ্ট একটি)।

SpriteBatch.Beginযে কলগুলি গ্রহণ করে SamplerStateএবং তার মধ্যে পাস করে তাদের মধ্যে একটি চয়ন করুন SamplerState.PointClamp(সেই নির্দিষ্ট "পয়েন্টে পিক্সেল নির্বাচন করে)"।


13

স্প্রাইট ব্যাচের বাইরে অন্য কেউ কীভাবে এটি করবেন তা ভাবতে চাইলে আপনি আপনার আদিমদের রেন্ডারিংয়ের আগে এটি করবেন:

this.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;

এটি প্রতিটি ফ্রেমে করতে হবে, যদি আপনার রেন্ডারিং পাইপলাইনে অন্য আইটেম থাকে যা এই মানটি (যেমন একটি SpriteBatch) পরিবর্তন করতে পারে ।


3
হাঁ! এবং কেবলমাত্র সম্পূর্ণতার জন্য, SamplerState.PointWrapআপনি যদি টেক্সচার মোড়ক লাগাতে চান (তবে এখনও টেক্সচার ফিল্টারিং অক্ষম করার সময়)। বা যদি আপনার নিজস্ব কাস্টম আচরণের প্রয়োজন হয় তবে যে SamplerStateকোনও কাস্টম প্রয়োজন অনুসারে আপনি একটি নতুন অবজেক্ট তৈরি করতে পারেন এবং Filterসম্পত্তিটি এতে পরিবর্তন করতে পারেন TextureFilter.Point
ডেভিড গাউভিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.