osg中使用geometry shader方式

可以参考osg示例代码osggeometryshaders

它用glsl版本比较老#version 120

#extension GL_EXT_geometry_shader4 : enable

使用gl_PositionIn[],而不能使用gl_in[],这个需要更高版本

类似以下代码:

#version 150
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;vec4 p0_3d = gl_in[0].gl_Position;vec4 p1_3d = gl_in[1].gl_Position;vec4 p2_3d = gl_in[2].gl_Position;

需要使用osg::Program* p;

p->setParameter(GL_GEOMETRY_VERTICES_OUT_EXT ,3);//对应max_vertices=3

p->setParameter(GL_GEOMETRY_INPUT_TYPE_EXT ,GL_TRIANGLES);//对应layout(triangles)

p->setParameter(GL_GEOMETRY_OUTPUT_TYPE_EXT ,GL_TRIANGLE_STRIP);//对应layout(triangle_strip

原文地址:https://www.cnblogs.com/coolbear/p/12539034.html

时间: 2024-10-12 15:39:47

osg中使用geometry shader方式的相关文章

OSG中的示例程序简介

OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示了路径动画的使用(AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera.CameraView.MatrixTransform.PositionAttitudeTransform等四种类型的节点上.二)演示了osgSim::OverlayNode

GLSL Core Tutorial – Geometry Shader

原文:http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/geometry-shader/     几何shader是OpenGL3.2之后的内容.这个阶段是可选的,当使用时,它接受在上一阶段组合的图元作为输入.一个几何shader不接受条带状,伞状或者环状的图元.几何shader接受组合后的图元,所以如何绘制命令指明是三角形带图元的话,几何shader实际上接受的是三角形.     跟顶点shader比较,几何shader完全知道正

OSG中的智能指针

在OpenSceneGraph中,智能指针(Smart pointer)的概念指的是一种类的模板,它针对某一特定类型的对象(即Referenced类及其派生类)构建,提供了自己的管理模式,以避免因为用户使用new运算符创建对象实例之后,没有及时用delete运算符释放对象,而造成部分内存空间被浪费的后果,也就是所谓的内存泄露错误. 由于OSG中与场景图形有关的大多数类均派生自Referenced类,因此OSG大量使用了智能指针来实现场景图形节点的管理.智能指针的使用为用户提供了一种自动内存释放的

【浅墨Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader (一)&屏幕水幕特效的实现

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/49556461 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1 概要:本文主要介绍了Unity5中的标准着色器,并且也涉及到了基于物理的着色.延迟渲染等高级着色技术,而在文章后半部分,也对屏幕水幕特效的实现方法进行了讲解与分析. 依然是附上

Unity Geometry Shader实现

unity官方文档关于geometry shader的内容等同于没有,这也是因为unity的开发者基本面向的是移动平台开发,所以这种SM4.0的特性基本都不会被开发者考虑.但是本着与时俱进的精神(虽然现在已经不早了)还是研究一下以备不时之需. 在开始unity geometry shader之前,通过DX10的龙书,简单的了解了一下geometry shader的原理.然后看了一个GS的billboard例子,觉得大同小异. 首先要知道,GS和VS以及FS的区别. 在dx9的渲染管线中,可编程的

osg项目经验1<MFC+OSG中模型点选效果>

点选主要是重载osg的GUIEventHandler, 1 class CPickHandler : public osgGA::GUIEventHandler{ //自定义回调函数名:CPickHandler 2 osgViewer::Viewer * mViewer; //在这里定义要在重载函数里使用的变量 3 osg::Group * mGroup; 4 osg::Node * lastSelect; 5 osg::Node * replacedNode; 6 int replaceNum

Geometry shader总结

什么是Geometry Shader GS存在于vertext shader和固定功能vertex post-processing stage之间,它是可选的不是必要的.GS的输入是单个primitive,输出可能是0个或多个primitive. GS的作用 GS的主要作用就是从已有的primitive中生成新的primitive,它可以"无中生有"的生成新的顶点 OpenGL官网上提到两种用法: Layered rendering: 对一个primitive,不改变rendertar

GLSL-几何着色器详解跟实例(GS:Geometry Shader)[转]

[OpenGL4.0]GLSL-几何着色器详解和实例(GS:Geometry Shader) 一.什么是几何着色器(GS:Geometry Shader) Input Assembler(IA)从顶点缓冲区上的输入流中接收顶点数据,并且把数据项转换为规范的格式.vertex shader通常用来把顶点从模型空间变换到平面空间,vertex shader读取一个顶点,输出一个顶点.Pixel Shader读取单一pixel属性,输出包含颜色和Z信息的的片断.而geometry shader是Dir

表单提交中get和post方式的区别

表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程. 3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Requ