[英]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.