当前位置: 首页 > wzjs >正文

企业建站系统营销吧tt团队dw做网站字体 别人 电脑

企业建站系统营销吧tt团队,dw做网站字体 别人 电脑,服装设计师培训学校,ui培训班贵阳今天学习下几何体的创建,也就是Geometry 。 学习之前我们先来回想一下右手坐标系: OSG 是右手坐标系,坐标轴定义如下: X 轴:向右(屏幕右侧)Y 轴:向前(垂直于屏幕向里)Z 轴:向上(垂直屏幕向上)所以如果我们想直观的看到效果需要定义X、Z轴来实现几何体。 Geomet…

在这里插入图片描述

今天学习下几何体的创建,也就是Geometry 。

学习之前我们先来回想一下右手坐标系:

OSG 是右手坐标系,坐标轴定义如下:

  • X 轴:向右(屏幕右侧)
  • Y 轴:向前(垂直于屏幕向里)
  • Z 轴:向上(垂直屏幕向上)

所以如果我们想直观的看到效果需要定义X、Z轴来实现几何体。

Geometry

在OSG中有个osg::Geometry 类来操作几何体。

osg::Geometry 是 OpenSceneGraph(OSG)中一个非常重要的类,它用于表示和管理 3D 几何数据,是构建复杂 3D 场景的基础元素之一。

主要功能

  • 存储几何数据:可以存储顶点、法线、纹理坐标、颜色等几何数据,这些数据定义了 3D 物体的形状、外观和朝向等属性。

  • 渲染控制:通过设置不同的渲染模式(如点、线、三角形等),控制几何数据的渲染方式。

  • 状态管理:可以关联材质、纹理等状态属性,从而为几何对象赋予特定的外观效果。

关键组成部分
  • 顶点数组(Vertex Array):存储几何图形的顶点坐标,确定了物体的形状。
  • 法线数组(Normal Array):定义每个顶点的法线方向,用于光照计算,决定物体表面的明暗效果。
  • 纹理坐标数组(Texture Coordinate Array):为每个顶点指定纹理坐标,用于将纹理映射到物体表面。
  • 颜色数组(Color Array):存储每个顶点的颜色信息,可用于实现顶点着色效果。
  • 图元集(PrimitiveSet):指定如何将顶点组合成图元(如点、线、三角形等)进行渲染
对比项osg::Geometryosg::Geodeosg::Group
类型可绘制对象类场景图节点类场景图节点类
作用表示和管理 3D 几何数据,定义物体形状、外观和朝向等属性作为可绘制对象的容器,将具体渲染内容集成到场景中组织和管理子节点,构建复杂的场景图结构
存储内容顶点、法线、纹理坐标、颜色等几何数据,以及图元集一个或多个 osg::Drawable 对象,如 osg::Geometryosg::ShapeDrawable一个或多个子节点,这些子节点可以是 osg::Geode 或其他 osg::Group 节点
使用场景需要创建自定义几何形状,如三角形、立方体、球体等,并进行精细渲染控制时需要将多个可绘制对象组合在一起,作为整体进行管理和渲染时构建复杂的场景层次结构,对不同场景元素进行分组管理,或实现场景的动态更新和变换时

代码实现

ok,基础知识看差不多了,下面来看下代码实现。

开始构建前,我们先了解下构建流程:

  1. 创建节点和几何对象:创建了一个 osg::Geode 节点和一个 osg::Geometry 对象。
  2. 设置顶点数组:创建了一个包含三个顶点的顶点数组,并将其设置给 Geometry 对象。
  3. 设置颜色数组:创建了一个颜色数组,并将其设置为整体绑定模式,即整个三角形使用相同的颜色。
  4. 设置图元集:使用 osg::DrawArrays 创建一个三角形图元集,并添加到 Geometry 对象中。
  5. 添加到场景并渲染:将 Geometry 对象添加到 Geode 节点中,然后将 Geode 节点设置为场景数据,最后运行 Viewer 进行渲染。

geometry.cpp

#include <osg/Geometry>
#include <osg/Geode>
#include <osgViewer/Viewer>
#include <osg/LineWidth>
#include <osg/Point>// 创建三角形几何体
osg::Geometry* createTriangle()
{osg::ref_ptr<osg::Geometry> geom = new osg::Geometry;// 顶点数组 (XYZ坐标)osg::Vec3Array* vertices = new osg::Vec3Array;vertices->push_back(osg::Vec3(0.0f, 0.0f, 0.0f));   // 顶点1vertices->push_back(osg::Vec3(2.0f, 0.0f, 0.0f));   // 顶点2vertices->push_back(osg::Vec3(1.0f, 0.0f, 2.0f));   // 顶点3geom->setVertexArray(vertices);// 颜色数组 (RGBA)osg::Vec4Array* colors = new osg::Vec4Array;colors->push_back(osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f)); // 红色geom->setColorArray(colors);geom->setColorBinding(osg::Geometry::BIND_OVERALL);// 设置图元类型为三角形geom->addPrimitiveSet(new osg::DrawArrays

文章转载自:

http://Ou9XgH76.bxdrj.cn
http://Y9on2KjA.bxdrj.cn
http://q56aKbLb.bxdrj.cn
http://g9OE9v6E.bxdrj.cn
http://wMkb0L06.bxdrj.cn
http://F24MbCy5.bxdrj.cn
http://Xpdyid4U.bxdrj.cn
http://9Fblmhct.bxdrj.cn
http://QGW51KAl.bxdrj.cn
http://YZMsNV20.bxdrj.cn
http://JHeDzi9z.bxdrj.cn
http://3ojfca44.bxdrj.cn
http://Kk9pis80.bxdrj.cn
http://wH9WX3As.bxdrj.cn
http://Pm22URvL.bxdrj.cn
http://IyUlINnQ.bxdrj.cn
http://QrHF6eif.bxdrj.cn
http://YaKBhexC.bxdrj.cn
http://shzFZGbn.bxdrj.cn
http://Uyjde8Bw.bxdrj.cn
http://go5QF0PR.bxdrj.cn
http://Jot8Nyhu.bxdrj.cn
http://Gsy4EMje.bxdrj.cn
http://lILhutUr.bxdrj.cn
http://EAkfoj47.bxdrj.cn
http://evr054AX.bxdrj.cn
http://9l3LsCwB.bxdrj.cn
http://mih2Pc7J.bxdrj.cn
http://Yy6tqWdc.bxdrj.cn
http://tQQ298Wg.bxdrj.cn
http://www.dtcms.com/wzjs/767062.html

相关文章:

  • 备案 网站名称 重复wordpress入门主题
  • 网站服务器爆满怎么挤进去学网页设计哪个培训学校好
  • 淄博优化网站排名江门免费网站建站模板
  • 怎样弄网站的导航栏app公司开发价格
  • 长春火车站位置线上视频剪辑培训班
  • 网站优化设计公司wordpress 排除置顶
  • 用html制作简单的购物网站无货源电商软件app
  • 建筑网325英文外链seo兼职在哪里找
  • 网站备案多少钱国外主流网站开发技术
  • 如何申请建设网站首页四川省住房城乡建设厅网站
  • 校园服装网站建设演示文稿博优云软件官方网站
  • 室内设计培训机构排行windows优化大师官方下载
  • 珠海策划网站建设平台wordpress英文美食主题
  • 长沙网站建设宜兴做网站哪个好
  • 广州网站优化推广公司深圳好看的网站建设哪家公司好
  • 艺术品网站模板突泉建设局三务公开网站
  • 南漳网站定制网站建设客户开发方法
  • 重庆营销型网站设计备案期间怎么做网站
  • 网站建设与推广实训小结简单的房源展示网站开发
  • 公司网站更换域名流程最简单网站设计的代码
  • 开江网站建设网站排版怎么做
  • 网站怎么做的有创意苏州市网站建设服务
  • 网站怎么运营推广肇庆高要建设局网站
  • 重庆网站建设 菠拿拿做一家直播卖货的网站
  • 做外贸一般用什么网站陇南市武都区住房和城乡建设网站
  • 简述网站建设优劣的评价标准网站开发流程图
  • 合肥高端网站建设cnfg如何网站数据备份
  • 聊城网站建设工作室wordpress分享qq插件下载
  • 怎么给网站的照片做超级链接竞价推广培训课程
  • 从哪里设置网站关键词无锡企业自助建站系统