0
我用下面的代碼頂點和法線玩:3d矩形開關可見一側在負z?
float col = 0;
float row = 0;
float level = 1;
private Vector3 tmp(float x, float y, float z) {
return new Vector3(x, y, z);
}
meshPartBuilder.rect(tmp(col, 0, row +1),
tmp(col, level, row +1),
tmp(col, level, row),
tmp(col, 0, row), new Vector3(-1, 0, 0));
這給了我預期的結果:
現在我進入負Z區域:
meshPartBuilder.rect(tmp(col, 0, row - 1),
tmp(col, level, row - 1),
tmp(col, level, row),
tmp(col, 0, row), new Vector3(-1, 0, 0));
現在突然間矩形不可見。由於未知的原因,從另一側可以看到,看起來「可見」側已經切換到負z時。
進入負Z時,我怎樣才能使矩形可見?
歡呼的答案@Xoppa,我理解背面剔除和直接工作的方式。因爲我渲染的臉是左側,我使用矩形001,011,010,000作爲矩形函數(http://www.scratchapixel.com/old/assets/Uploads/Interpolation/trilinearfig.png)。我很感謝您交換角落的解決方案,但我無法理解原因。你能解釋一下這一點嗎?我問這個,因爲否則我必須實現2種呈現矩形的方法,一種用於正z,另一種用於當直角位於負z中。 –
你不明白什麼?您需要按照正確的順序指定角點。如果這意味着你必須以兩種方式來實現它,那就是這樣。 – Xoppa
在今天早上重新看了這個話題之後,我開始更好地理解它,我對左窗格上的頂點繞組感到困惑。頂點風應始終逆時針旋轉,否則三角形將翻轉。 –