簡體   English   中英

顯示垂直於屏幕的四邊形

[英]Display a quad perpendicular to the screen

繪制四邊形時,當旋轉進入垂直於屏幕的位置時,它會消失。 理想情況下,我希望看到的是(b)但我一無所獲

在此輸入圖像描述

我的代碼有問題嗎? (警告舊的openGL代碼如下)

void draw_rect(double vector[4][3], int rgb[3], double transp)
{
    GLint is_depth, is_blend, blend_src, blend_dst; 

    glGetIntegerv(GL_DEPTH_WRITEMASK, &is_depth); 
    glGetIntegerv(GL_BLEND, &is_blend); 
    glGetIntegerv(GL_BLEND_SRC, &blend_src); 
    glGetIntegerv(GL_BLEND_DST, &blend_dst); 

    glEnable(GL_BLEND); 
    glDepthMask(0); 
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

    // code to set the color ... 

    glBegin(GL_POLYGON); 
    glVertex3v(&vector[0][0]); 
    glVertex3v(&vector[1][0]); 
    glVertex3v(&vector[2][0]); 
    glVertex3v(&vector[3][0]); 
    glEnd(); 

    if (!is_blend){ glDisable(GL_BLEND); }
    glDepthMask(is_depth); 
    glBlendFunc(blend_src, blend_dst); 
}

四邊形(假設它由共面面定義,如在這種情況下)根據定義無限薄。 垂直於相機時它是不可見的是正確的行為。

“正確”的解決方案是制作一個盒子而不是一個四邊形。

有關使用多維數據集的示例,請參閱使用Opengl繪制多維數據集3D 您需要調整頂點位置以使立方體沿一個維度(可能是Z)變小,但它會為您提供您正在尋找的效果。

另外, 停止使用固定功能的東西glVertex等)。 它已被棄用多年。 着色器並不那么困難,通過您最喜歡的搜索引擎很容易找到示例。

當四邊形垂直於屏幕時,嘗試使其成為一定寬度的線條

暫無
暫無

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

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