liblas读取点云,设置半透明

该文章介绍了一个通过Liblas库读取LAS点云数据,然后在OpenGL中进行显示的过程。它涉及到设置顶点和颜色数组,使用GLSL着色器传递颜色信息,并通过设置透明度实现半透明效果。代码示例展示了如何创建Geode,设置顶点颜色,以及在Shader中处理透明度。

一,用Liblas读取点云数据,获取点云位置和颜色
二,将点云位置和颜色分别代入geode的位置数组和颜色数组
三,用glsl设置半透明。需要注意的是
1,颜色数组是用attribute,所以要用
geom->setVertexAttribArray(10, colors, osg::Array::BIND_PER_VERTEX);
program->addBindAttribLocation(“colors”, 10);
2,由于颜色数组是绑定到顶点的,所以要在shader中把颜色从顶点着色器传递到片元着色器。

“varying vec4 outColors;”
3,alpha值是uniform,所以在stateset中设置
osg::ref_ptrosg::Uniform alphaValue = new osg::Uniform(“alpha”, 0.1f);
stateset->addUniform(alphaValue);
4,开启混合
stateset->setMode(GL_BLEND, osg::StateAttribute::ON);
stateset->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);

代码如下:
//通过Liblas读取.las文件,并在osg中显示出来,用shader,先在片元着色器指定使用绿色
#include <liblas/liblas.hpp>
#include
#include

#include <osgDB/ReadFile>
#include <osgUtil/Optimizer>
#include <osg/CoordinateSystemNode>

#include <osg/Switch>
#include <osg/Types>
#include <osgText/Text>

#include

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值