gpt4 book ai didi

OpenGL 3.2核心配置文件glLineWidth

转载 作者:行者123 更新时间:2023-12-04 04:07:16 25 4
gpt4 key购买 nike

我正在Mac OS X上设置OpenGL 3.2 Core上下文。我希望能够在屏幕上绘制一些粗黑的赞。在OpenGL的旧版本中,我可以设置

glLineWidth(10.0f);

我会得到一条10像素宽的线。但是,当我检查3.2 Core中的线宽范围时
GLint range[2];
glGetIntegerv(GL_ALIASED_LINE_WIDTH_RANGE, range);
glGetIntegerv(GL_SMOOTH_LINE_WIDTH_RANGE, range);

对于锯齿线,我得到的值为1;对于平滑线,我得到的值为0-1。如何制作屏幕空间为10.0像素宽的线?除了使每条线段成为矩形之外,是否有一种简单的绘制方法?

最佳答案

使用OpenGL 3.2核心配置文件,调用值大于1.0的glLineWidth会产生INVALID_VALUE错误(调用glGetError进行证明)。

当然,可以通过确定画线所需的四边形来获得所需的结果。

我认为您应该能够从线点生成四边形:嘿,更大的线是四边形!也许您可以使用this这样的技术来获得想要的结果。

关键是:不用依赖LineWidth,而是给定一个单元四边形作为输入(使用三角形条纹的4个顶点),然后在着色器中变换传入的顶点,并传递给它适当的均匀性。

也许另一种方法是使用几何体着色器进行渲染:从一个点生成一个四边形。但是,我不确定这一点。我不知道几何着色器(当然,只有在可行的情况下)才是最好的方法:使用单个四边形绘制线带的成本将是组成该带的每条线的着色器统一设置。

关于OpenGL 3.2核心配置文件glLineWidth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com