我一直在研究一個iOS項目,我嘗試將紋理(世界地圖)映射到一個ofSpherePrimitive,但似乎存在一些渲染問題。Openframeworks iOS項目:紋理onSpherePrimitive中斷
雖然我可以將紋理映射到球體上,但似乎有前景中的紋理無法正確呈現的球體部分,但相反,它顯示爲「透明」並呈現出「透明」的遠側球體,裏面的質感。下面兩張圖片來說明這一點。
首先,在這裏用紅色光照亮正面/頂部並正確着色紋理,而在球體的底部則有來自球體另一側內部的未照亮紋理部分。
其次,這裏有一個最小的測試案例,沒有燈光,攝像頭等,只是一個方格圖案。你可以從球體下半部分的背面看到更小的跳棋。請注意,它不是唯一的底部,但隨着球體旋轉,上半部分也顯示相同的問題。
對於第二個實施例中,相關的代碼是:
void ofApp::setup(){
r = 0;
sphere.setRadius(100);
texture.loadImage("test.png");
}
//--------------------------------------------------------------
void ofApp::update(){
r += 0.25;
}
//--------------------------------------------------------------
void ofApp::draw(){
ofPushMatrix();
ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
ofRotateY(r);
texture.getTextureReference().bind();
sphere.draw();
texture.unbind();
ofPopMatrix();
}
值得注意的是,雖然球體旋轉的「透明」的部件與球體旋轉。
您還可以看看這裏的第二個例子中的整個代碼:https://github.com/kontur/openframeworks-ios-sphere-texturing-problem
兩個紋理圖像是兩個大國,在世界地圖圖像是1024×1024和方格圖案爲512×512像素。
我很確定這是一些小問題,設置一個標誌來渲染球體,但作爲初學者,我還沒有取得任何進展,無論我迄今爲止嘗試過。
任何想法?