Я просто хочу создать загрузчик файлов .obj, который будет загружать 3D-объекты. Все пошло хорошо, но когда я пытаюсь загрузить прозрачный объект, у меня возникла проблема.OpenTK - проблема прозрачности на VBO
Итак, вот изображение проблемы. Прозрачность работает, но я не знаю, почему есть треугольники. Я пытаюсь загрузить различные объекты (с текстурой и без нее), но я всегда получал эту проблему.
вот мои настройки света:
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);
}
}
и в основной функции Грузоподьемность также имеют эти параметры
GL.Enable(EnableCap.Blend);
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
//GL.Enable(EnableCap.DepthTest);
//GL.Enable(EnableCap.CullFace);
я знаю, что, возможно, мой ответ не самый лучший, но я не знаю, что этот вопрос, и я даже не нахожу подобных проблем в сети.
Или просто правильно настроить глубину? – Luca
Тест глубины отклоняет фрагменты дальше, но здесь вы должны явно сортировать их, поэтому буфер глубины фактически бесполезен. –
Справа. Теперь я помню, почему я избегаю прозрачных томов. – Luca