Sponza рэндэрлэх оролдлого 13, MaterialManager Singleton problem

Хэрэв энэ цувралыг уншдаг бол энд жижигхэн frameworkish маягийн юм бичигдэж байгааг анзаарсан бизээ. Энэ фрэймворк бол хуучин блог дээр маань Sharav Tech Engine гэж юм үүсгэж байсан тэрний үргэлжлэл гэж хэлвэл болно. Болохоос болохгүй хүртэл нь бага багаар хөгжүүлнэ гэсэн бодолтой байна. Энэ удаагийн тэмдэглэлээр MaterialManager класстай холбоотой бага зэргийн тэмдэглэл бичье гэж бодлоо.


MaterialManager-ийг анхнаас нь синглтон байхаар бодож бичсэн билээ. Гэтэл асуудал гарлаа, ямар асуудал вэ гэхээр хоёроос дээш тооны модел рэндэрлэх үед хоёрдох модел маань янз бүрийн текстуртэй болж рэндэрлэгдэв. Учир нь юундаа байсан байна вэ гэхээр анх модел уншаад материал үүсгэх үед зөвхөн ганцхан синглтон үйлчлэгчээс буюу олон моделиудын дунд зөвхөн ганц хэрэглэгдэх MaterialManager классаас үйлчилгээ авч байсанд алдаа байж, эхний модел унших үед нь баахан ID дээр материал захиалаад үүсгэчихсэн тэгсэн дараагийн моделийг унших үед яг ижилхэн ID моделийн материал тодорхойлолтон дунд цохиж явах нь тэр, ингээд хоёр дахь моделийг рэндэрлэх үед өмнө үүсгэсэн байсан моделийн материал ID -нуудтай мөргөлдөөд байж, мөргөлдсөн ID буюу шал буруу ID-г хоёр дахь модел ашиглана гэсэн үг. Үйлчилгээ авна гэдэгт энэ класс дотор Материал үүсгээд id-г хадгалахыг хүсэх гэх мэтийн функцийг хэлж байгаа. Тиймээс объектүүдийн дунд ганцхан синглтон биш харин объект бүрт өөр өөрсдийн гэсэн MaterialManager тавьж өгсөнөөр асуудал шийдэгдэв.

өө тийм, кодуудыг блог дээр байн байн тавиад байх нь жаахан тохиромжгүй юм байна тиймээс github дээр хуулсан байгаа.

GITHUB

Энэ зураг дээр моделиуд хэвийн рэндэрлэгдэж байгааг харуулж байна. Модел буруу рэндэрлэгдэх үеийн скриншот авахаа мартчихсан байна.


Popular posts from this blog

Apache Spark + Cassandra. Hello World