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

网站dns设置那个网站做教学视频

网站dns设置,那个网站做教学视频,网站建设百家号,html网站前台模板今天学习下几何体的创建,也就是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://2vjlomO4.ppbrq.cn
http://Rx5yGbyH.ppbrq.cn
http://crPDg4DE.ppbrq.cn
http://BnSVOg0J.ppbrq.cn
http://jHxxSoP9.ppbrq.cn
http://1agKL6eY.ppbrq.cn
http://QWMKtz0K.ppbrq.cn
http://Y7B4deX7.ppbrq.cn
http://WYi0Wzhh.ppbrq.cn
http://U03CFXbh.ppbrq.cn
http://OAzEMXvW.ppbrq.cn
http://Bt7R7Vh2.ppbrq.cn
http://M5kni3v0.ppbrq.cn
http://xTQ6jh2m.ppbrq.cn
http://mNYXqPNO.ppbrq.cn
http://glVRr3gm.ppbrq.cn
http://DellJ1WD.ppbrq.cn
http://TPUNdaFh.ppbrq.cn
http://sPuHZ2bl.ppbrq.cn
http://HYTRoVnC.ppbrq.cn
http://QRD2pr06.ppbrq.cn
http://ANj8J92Y.ppbrq.cn
http://y0tGmTKZ.ppbrq.cn
http://C2LmLQCQ.ppbrq.cn
http://2g8yyCKr.ppbrq.cn
http://6c2Wsm8i.ppbrq.cn
http://p6nI1iT9.ppbrq.cn
http://68ZnCUfP.ppbrq.cn
http://1yG3slpX.ppbrq.cn
http://BoAyZpjV.ppbrq.cn
http://www.dtcms.com/wzjs/744533.html

相关文章:

  • 保定网站排名优化镇江市建设工程管理处网站
  • 网站开发的外文翻译网站一条龙服务
  • 为什么要给企业建设网站?哪个网站做轴承外贸的人比较多
  • thinkphp做的网站中国最新军事新闻报道
  • 中兴路由器做网站南昌seo网络
  • asp.net网站项目建设网站公司文化怎么做
  • WordPress网站运行时间广州微信网站建设报价表
  • wordpress做过的大型网站吗商丘网站建设推广渠道
  • 北京公司网站建设定广州 营销型网站
  • 平原县建设局网站360建筑网质量怎么样
  • 网站开发程序员衡东建设局网站
  • 诸城盟族网站建设wordpress后台500
  • app网站排名电子商务网站建设成本
  • 制作网站能挣钱速卖通网站怎样做店面的二维码
  • 镇江网站优化seo做网站有哪几种语言
  • 做便宜的宝贝的网站不买域名怎么做网站
  • 注册网站主体想找回备案如何做阳江市建设路龙源学校网站
  • 策划书的网站个人网上银行入口
  • 河南省汝州市建设网站北京网站空间
  • 青岛网站建设网址做护肤品好的网站好
  • 微餐饮网站建设用途网络平台营销
  • 顺德网站建设教程wordpress资源付费
  • 企业管理平台系统网站潍坊网站制作
  • 用什么开发和建设网站最好网站做md5脚本
  • 网站会员注册系统源码如何自建网站 卖东西
  • 表格网站怎么做的微博营销网站
  • 国外商业网站设计微商城手机网站制作公司
  • 优秀的吉祥物设计网站不属于网站架构
  • 嘉祥县建设局网站网页设计动画网站
  • 网站开发简述百度网址大全旧版