在Android中涉及OGLES。我想創建一些三角形並翻譯它們。直截了當。翻譯 - GLES translateM() - android中的floatbuffer
我看看這些例子,並且看到FloatBuffers被推薦爲在Android中使用GLES的多邊形座標的存儲結構,因爲它們使用本地代碼類固體。好東西!這裏解釋。
Why FloatBuffer instead of float[]?
現在有什麼困惑,我是在Android的Matrix類幾乎完全運行在Java的浮點數組。所以一方面我被告知要使用FloatBuffers來提高速度,但另一方面,我現在要做的每個轉換都必須是這樣的?
float[] myJavaFloatArray = new float[polylength];
myFloatBuffer.get(myJavaFloatArray);
Matrix.translateM(myJavaFloatArray,0,-1.0f,0.0f,0.0f);
myFloatBuffer.put(myJavaFloatArray);
這真的是最佳做法嗎?假設我的翻譯比率是否足夠低以至於這筆費用是值得的?如果我正在做大量的翻譯,每幀每個對象上有一個,那麼在整個過程中使用java浮點數組的參數呢?
感謝您的回答。 array()方法應該完全按照你所說的做,但在我的設備上拋出錯誤。結果不能保證該方法在目標上實現。這就是說,當我回家時,我會嘗試着色器的第一件事! –