簡體   English   中英

Android OpenGL視口在所有設備上的水平和垂直視圖相同

[英]Android OpenGL Viewport same view on all devices and both horizontal and vertical

我正在尋找設置OpenGL的正確方法,以便相同的信息將以任何方式顯示在任何屏幕上。 我確實知道,旋轉時所有內容都會顯示為壓縮狀態,但是會顯示相同的信息。 有沒有辦法做到這一點?

為了更清晰,請想象一個景觀平板電腦,它在屏幕中央有一個圓圈。 當用戶旋轉平板電腦和旋轉平板電腦的高度(因為寬度和反之亦然)時,他們將看到一個細長的橢圓形,而不是看到一個圓形。

初始化OpenGL ES時,可以根據屏幕大小設置投影矩陣的比率。 如果將其設置為1,則無論屏幕比例如何,縱向和橫向圖像都將以相同的尺寸修改投影矩陣。 應該是您需要的東西。

例:

// correct proportion according width to height ratio
public void onSurfaceChanged(GL10 glUnused, int width, int height) {
    GLES20.glViewport(0, 0, width, height);
    float ratio = (float) width / height;
    Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 2.0f, 250);
} 

// disregard screen width/height ratio
public void onSurfaceChanged(GL10 glUnused, int width, int height) {
    GLES20.glViewport(0, 0, width, height);
    Matrix.frustumM(mProjMatrix, 0, -1, 1, -1, 1, 2.0f, 250);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM