openGL之API学习(六十六)EmitVertex EndPrimitive

OpenGL中的EmitVertex和EndPrimitive是几何着色器特有的命令,用于生成图元。EmitVertex输出顶点,EndPrimitive结束图元。几何着色器的输入和输出模式各有特点,输入模式包括点、线和三角形等,输出模式主要有点、线条和三角带。使用时需指定输出图元形式,并通过layout布局定义。最大输出顶点数由max_vertices设定。
摘要由CSDN通过智能技术生成

EmitVertex表示输出一个顶点,而EndPrimitive表示结束一个图元的输出,这是一对命令。只有几何着色器才有的命令。

几何着色器的图元通过两个特殊的内置函数生成的,即EmitVertex()和EndPrimitive() ,每个着色器请求都必须调用EmitVertex(),以及必须必要的时候使用EndPrimitive()来产生图元,如果没有调用这些函数,那么就不会输出几何体,也就是剪裁/扩充的意思。如果多次调用那么就产生比输入更多的数据。

EndPrimitive结束以后,图元形式是什么呢?三角形、四边形?在几何着色器的布局layout中会指定输出的图元形式,如下:

static const char* pGS = "                                                          \n\
#version 330                                                                        \n\
                                                                                    \n\
layout(points) in;                                                                  \n\
layout(triangle_strip) out;                                                         \n\
layout(max_vertices = 4) out;                                                       \n\
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值