[英]3D Transparency JavaFX not blending all triangles in a mesh
我目前正在繪制通過行進立方體算法生成的單個透明3D網格,目的是在問題解決后擁有更多對象。
就目前而言,我可以很好地繪制3d形狀,但是當我實現透明性(在我的情況下,更改網格PhongMaterial的不透明度)時,我得到了一個怪異的效果,在另一個三角形后面僅渲染了幾個三角形。
參見示例。
http://i.imgur.com/1wdmYYs.png (對不起,由於代表我無法直接發布圖像)
當“棒”位於較大形狀的后面時,三角形似乎丟失了,我目前不知道為什么。
紅色是所有以相同方式渲染的相同網格。
我目前正在使用環境光,如果有區別的話。
一些示例代碼:
MeshView mesh = generate Mesh Data via marching cube;
mesh.setCullFace(CullFace.None);
PhongMaterial mat = new PhongMaterial(1, 0, 0, 0.5d);
AmbientLight light = new AmbientLight();
light.setColor(new Color(1, 0, 0, 0.5)); // I dont believe the alpha makes a difference
light.setOpacity(0.5);
mesh.setMaterial(mat);
group.getChildren().addAll(light, mesh);
僅當按照與相機的距離對三角面分類時,透明度才能正確工作。 消費者3D卡將任何場景分解為三角形,因此它們可以分別渲染每個場景,這是一個事實。 當您有數百個核心時,這允許同時渲染數百個三角形。 較舊的卡片會向您顯示可以渲染的三角形數量/秒。
在更現代的卡上,部分三角形渲染已移至驅動程序,該驅動程序使用卡上的矢量引擎來計算軟件中每個點的顏色。 這仍然是快速的,因為您可以擁有1000多個矢量CPU,此外,它還允許您創建復雜的程序,在將每個頂點/像素存儲到內存之前對其進行修改,從而可以創建閃亮的表面等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.