tr-demoscene
the scene => coding => pc => Konuyu başlatan: paradox - 26.09.2010 16:31:21
-
slm..
Arkadaşlar küpten skybox yapıp kaplama veriyorum ama birleşimlerindeki çizgiler belli oluyo..cubemap kullanınca aynı sorun olmuyo fakat ben o şekilde istemiyorum..
farcry'da da gözüme çarpmıştı aynı hata..
bide resim attım oklarla gösterdim çizgileri..
-
OpenGL? DirectX? DirectX'de ben bu sorunu yaşamamıştım. OpenGL'de GL_CLAMP ya da GL_CLAMP_TO_EDGE işini görecektir.
-
OpenGL? DirectX? DirectX'de ben bu sorunu yaşamamıştım. OpenGL'de GL_CLAMP ya da GL_CLAMP_TO_EDGE işini görecektir.
Directx 9 da oluyo bende..daha önceleride oluyodu bi şekilde düzeltmiştim gibi hatırlıyorum ama unuttum ne yaptısam..
-
sanırım DirectX karşılığı da şu
pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
U, V için ayrı ayrı set ediliyor.
-
teşekkürler..verdiğin kodları yazınca oldu..
bu yapılar tam olarak ne işe yarıyor peki?
-
normalde 32 bit işlemlerde sonuç 8, 16 bit'e göre çok daha iyi olsa da yine de bir polygon'un bittiği ve diğerinin başladığı yer üst üste binebilir. hatta bu genellikle kamerayı hareket ettirdiğinde belli açılarda ortaya çıkar. software 3d enginelerin bir kısmında polygonlar arada bir birbirlerinden koparak aradaki boşluktan arkasındaki poygonların / skybox'ın görünmesine neden olabilirler. bu clamping hadisesi bu sorunu çözüyor. texture'ı çizerken edgelerin üst üste binmemesi için özel hesaplar yapıyor. tahminimce biraz performans kaybına yol açıyordur ama sonuç olarak kenarlar mükemmel oturuyor. bu sorun özellikle alpha channel kullanıldığında daha net göze batıyor. transparent olan yerler üst üste binince alphalar toplanarak çok belirgin bir çizgi oluşturuyorlar.
bu konuda daha detaylı bir araştırmam olmadı. benim araştırıp sana anlatmam saçma olur, sen de aynen araştırabilirsin elbette ki. :)
edit: yazım hatası düzeltildi.
-
tamamdır teşekkür ettim..bende yüzeysel olarak merak etmiştim ne işe yarar diye zaten..