2016-03-24 47 views
1

Sadece 3D nesneleri yükleyecek bir .obj dosya yükleyicisi oluşturmak istiyorum. Her şey yolunda gitti ama şeffaf bir nesneyi yüklemeye çalıştığımda bir sorunum var.OpenTK - VBO üzerinde şeffaflık sorunu

Burada, sorunun bir resmi var. Şeffaflık çalışıyor ama neden bilmiyorum, üçgenler var. Farklı nesneler yüklemeyi deniyorum (ayrıca ve doku olmadan) ama bu sorunu her zaman aldım. Burada

the issue with triangles

the issue with triangles

ışığım ayarları geçerli:

GL.Enable(EnableCap.Blend); 
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); 

//GL.Enable(EnableCap.DepthTest); 
//GL.Enable(EnableCap.CullFace); 

biliyorum

class Light 
{ 
    public static void SetLight() 
    { 
     GL.Enable(EnableCap.Lighting); 
     GL.Enable(EnableCap.Light0); 
     GL.Enable(EnableCap.ColorMaterial); 

     Vector4 position = new Vector4(0.0f, 200.0f, 300.0f, 1.0f); 
     Vector4 ambient = new Vector4(0.2f, 0.2f, 0.2f, 1.0f); 
     Vector4 diffuse = new Vector4(0.7f, 0.7f, 0.7f, 1.0f); 
     Vector4 specular = new Vector4(1.0f, 1.0f, 1.0f, 1.0f); 

     GL.Light(LightName.Light0, LightParameter.Position, position); 
     GL.Light(LightName.Light0, LightParameter.Ambient, ambient); 
     GL.Light(LightName.Light0, LightParameter.Diffuse, diffuse); 
     GL.Light(LightName.Light0, LightParameter.Specular, specular); 

    } 

    public static void SetMaterial() 
    { 
     GL.Color4(1.0f, 1.0f, 1.0f, 0.5f); 

     Vector4 ambient = new Vector4(0.3f, 0.3f, 0.3f, 0.5f); 
     Vector4 diffuse = new Vector4(1.0f, 1.0f, 1.0f, 0.5f); 
     Vector4 specular = new Vector4(0.0f, 0.0f, 0.0f, 0.5f); 

     GL.Material(MaterialFace.FrontAndBack, MaterialParameter.Ambient, ambient); 
     GL.Material(MaterialFace.FrontAndBack, MaterialParameter.Diffuse, diffuse); 
     GL.Material(MaterialFace.FrontAndBack, MaterialParameter.Specular, specular); 
     GL.Material(MaterialFace.FrontAndBack, MaterialParameter.Shininess, 1.0f); 
    } 
} 

ve ana Yük işlevinde de bu ayarları olması belki gözlerimi Cevap en iyisi değil ama ne olduğunu bilmiyorum Bu sorun ve ağda benzer sorunları bile bulamıyorum.

cevap

1

Senin sorunun şudur:

enter image description here

Onları çizim önce en yakın olan en uzak mesafede şeffaf yüzleri sıralamak gerekir.

+0

Ya da sadece derinlik testini doğru şekilde ayarlayınız? – Luca

+0

Derinlik testi parçaları daha uzakta reddeder, ancak burada bunları açıkça ayırmalısınız, böylece derinlik tamponu aslında işe yaramaz. –

+0

Sağ. Şimdi neden şeffaf hacimlerden uzak durduğumu hatırlıyorum. – Luca