永发信息网

如何获取opengl细分着色器的计算结果

答案:1  悬赏:80  手机版
解决时间 2021-02-26 14:32
如何获取opengl细分着色器的计算结果
最佳答案
细分曲面过程并不对OpenGL典型的几何图元(点、线和三角形)进行操作,而是使用一个新的图元(在OpenGL 4.0版本中新增的),称为patch。patch由流水线中所有活动的着色阶段处理。相比起来,其它图元类型仅仅被顶点、片段和几何着色器处理,而旁通细分曲面阶段。实际上,如果有任一细分曲面着色器是活跃的,那么传递任何其它几何类型会产生一个GL_INVALID_OPERATION错误。相反地,如果企图渲染一个patch而没有任何细分曲面着色器(明确地说是一个细分曲面计算着色器;我们会看到细分曲面控制着色器是可选的),那么将也会得到一个GL_INVALID_OPERATION错误。

  patch仅仅是传入到OpenGL的一列顶点列表,该列表在处理期间保存它们的次序。当用细分曲面与patch进行渲染时,使用像glDrawArrays()这样的渲染命令,并指定从绑定的顶点缓存对象(VBO)将被读出的顶点的总数,然后为该绘制调用进行处理。当用其它的OpenGL图元进行渲染时,OpenGL基于在绘制调用中所指定的图元类型而隐式地知道要使用多少顶点,比如使用三个顶点来绘制一个三角形。然后,当使用一个patch时,需要告诉OpenGL顶点数组中要使用多少个顶点来组成一个patch,而这可以通过使用glPatchParameteri()进行指定。由同一个绘制调用所处理的patch,它们的尺寸(即每个patch的顶点个数)将是相同的。

  void glPatchParameteri(GLenum pname, GLint value);

  
  要指定一个patch,使用类型GL_PATCHES输入到任一OpenGL绘制命令。以下代码描述了发射两个patch,每个patch含有四个顶点,然后通过glDrawArrays绘制命令进行渲染。

  复制代码
  GLfloat vertices[][2] = {
  {-0.75f, -0.25f}, {-0.25f, -0.25f}, {-0.25f, 0.25f}, {-0.75f, 0.25f},
  {0.25f, -0.25f}, {0.75f, -0.25f}, {0.75f, -0.25f}, {0.75f, 0.25f}, {0.25f, 0.25f}
  };

  glBindVertexArray(VAO);
  glBindBuffer(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
  glVertexAttribPointer(vPos, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
  glPatchParameteri(GL_PATCH_VERTICES, 4);
  glDrawArrays(GL_PATCHES, 0, 8);
  每个patch的顶点首先由当前绑定的顶点着色器处理,然后用于初始化数组gl_in,这个变量在细分曲面控制着色器中被隐式地声明。gl_in中的元素个数与由glPatchParameteri()所指定的patch大小相同。在一个细分曲面着色器内部,变量gl_PatchVerticesIn提供了gl_in中的元素个数(就好比使用sizeof(gl_in) / sizeof(gl_in[0])进行查询)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
禹州市许昌正宗老字号马记饸饹地址有谁知道?
我是去快递公司打工 我和我朋友大概干了大半
请据图回答问题:(1)如图表示反射弧模式图
黔江怎么坐车到万盛??自己没有车~
咳嗽应该看什么科
丧事挽父11个字对联
12岁儿童牙疼
成都中医哮喘病医院在什么地方啊,我要过去处
瑞文怎么打远程上单
为什么乙,烯的键,长比乙,烷短,键,能比乙
国机重工挖掘机专营店地址在哪,我要去那里办
为什么用美团外卖首单不能减钱呢
现在用蜂窝助手挂机阴阳师会不会被封号,来一
犯罪心理第一季第一集Richard这个演员名字叫
国家电网苏州供电公司计量中心地址在哪,我要
推荐资讯
曾经红遍大江南北的草根明星,现在过得怎么样
三原色美术中心在哪里啊,我有事要去这个地方
【救赎英文】救赎 英文怎么写
手机壳变黄了怎么变白
谜面:一日之计在于晨 打三字经一句
输液剂的灭菌多采用A.热压灭菌B.紫外线灭菌C.
福睿斯和福克斯都是一个妈生的,求推荐哪一款
sql server与my sql区别
要电脑显示屏黑屏可以按键盘上那个键
文登乐嘉针织有限公司在哪里啊,我有事要去这
zippo分主要几个系列,那些系列比较高档?冰
【石密度】石的密度是多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?