Я сделал этот многогранник с Haskell OpenGL:
Стороны многогранника прозрачны:
renderPrimitive Quads $ do
materialDiffuse Front $= col
......
где col
- это цвет с компонентом "a", равным 0.2
.
А в функции main
включено смешивание:
blend $= Enabled
blendFunc $= (SrcAlpha, OneMinusSrcAlpha)
Можно увидетьчто стороны действительно прозрачны.Однако края многогранника не появляются внутри.Почему так?Я пробовал многочисленные initialDisplayMode
, такие как:
initialDisplayMode $= [RGBAMode, DoubleBuffered, WithDepthBuffer, WithAlphaComponent]
У меня есть эти цвета материала и светлые цвета:
clearColor $= Color4 0 0 0 0
materialSpecular Front $= white
materialShininess Front $= 50
lighting $= Enabled
light (Light 0) $= Enabled
position (Light 0) $= Vertex4 0 0 100 1
ambient (Light 0) $= white
diffuse (Light 0) $= white
specular (Light 0) $= white