zoukankan      html  css  js  c++  java
  • 【学习笔记】OSG 基本几何图元

    例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4));

    来指定要利用这些数据生成一个怎么样的形状。

     该行代码中,使用DrawArrays类向Geometry类送入了新几何体的信息,即,该几何体是一个QUADS,它的顶点坐标从索引数组中读入,从第1个索引值开始,共读入4个索引值,组成一个四边形图形。

    几何体的形状参数除了QUADS之外,还有数种方式,以用于不同的用户需求,列表如下:

    POINTS

    绘制点

    绘制用户指定的所有顶点。

    LINES

    绘制直线

    直线的起点、终点由数组中先后相邻的两个点决定;用户提供的点不止两个时,将尝试继续绘制新的直线。

    LINE_STRIP

    绘制多段直线

    多段直线的第一段由数组中的前两个点决定;其余段的起点位置为上一段的终点坐标,而终点位置由数组中随后的点决定。

    LINE_LOOP

    绘制封闭直线

    绘图方式与多段直线相同,但是最后将自动封闭该直线。

    TRIANGLES

    绘制三角形

    三角形的三个顶点由数组中相邻的三个点决定,并按照逆时针的顺序进行绘制;用户提供的点不止三个时,将尝试继续绘制新的三角形。

    TRIANGLE_STRIP

    绘制多段三角形

    第一段三角形的由数组中的前三个点决定;其余段三角形的绘制,起始边由上一段三角形的后两个点决定,第三点由数组中随后的一点决定。

    TRIANGLE_FAN

    绘制三角扇面

    第一段三角形的由数组中的前三个点决定;其余段三角形的绘制,起始边由整个数组的第一点和上一段三角形的最后一个点决定,第三点由数组中随后的一点决定。

    QUADS

    绘制四边形

    四边形的四个顶点由数组中相邻的四个点决定,并按照逆时针的顺序进行绘制;用户提供的点不止四个时,将尝试继续绘制新的四边形。

    QUAD_STRIP

    绘制多段四边形

    第一段四边形的起始边由数组中的前两个点决定,边的矢量方向由这两点的延伸方向决定;起始边的对边由其后的两个点决定,如果起始边和对边的矢量方向不同,那么四边形将会扭曲;其余段四边形的绘制,起始边由上一段决定,其对边由随后的两点及其延伸方向决定。

    POLYGON

    绘制任意多边形

    根据用户提供的顶点的数量,绘制多边形。

     

    和opengl对比:

    osg::PrimitiveSet::POINTS对应OpenGL中的GL_POINTS绘制单独的点
    osg::PrimitiveSet::LINES对应OpenGL中的GL_LINES绘制每两点连接的线
    osg::PrimitiveSet::LINE_STRIP对应OpenGL中的GL_LINE_STRIP绘制依次连接各点的线
    osg::PrimitiveSet::LINE_LOOP对应OpenGL中的GL_LINE_LOOP绘制依次连接各点的线,首尾相连
    osg::PrimitiveSet::POLYGON对应OpenGL中的GL_POLYGON绘制依次连接各点的多边形
    osg::PrimitiveSet::QUADS对应OpenGL中的GL_QUADS绘制依次连接每四点的四边形
    如:1、2、3、4、5、6、7、8点 绘制结果1、2、3、4组成四边形,5、6、7、8组成四边形
    osg::PrimitiveSet::QUAD_STRIP对应OpenGL中的GL_QUAD_STRIP绘制四边形
    如:1、2、3、4、5、6、7、8点 绘制结果1、2、3、4组成四边形,3、4、5、6组成四边形、5、
    6、7、8组成四边形
    osg::PrimitiveSet::TRIANGLES对应OpenGL中的GL_TRIANGLES绘制每三点连接的三角形
    如:1、2、3、4、5、6点 绘制结果1、2、3组成三角形,4、5、6组成三角形
    osg::PrimitiveSet::TRIANGLE_STRIP对应OpenGL中的GL_TRIANGLE_STRIP
    如:1、2、3、4、5、6点 绘制结果1、2、3组成三角形,2、3、4组成三角形,3、4、5组成三角
    形4、5、6组成三角形
    osg::PrimitiveSet::TRIANGLE_FAN对应OpenGL中的GL_TRIANGLE_FAN
    如:1、2、3、4、5、6点 绘制结果1、2、3组成三角形,1、3、4组成三角形,1、4、5组成三角
    形,1、5、6组成三角形

  • 相关阅读:
    增强的for循环(或foreach)
    XMLHTTP使用具体解释
    数据转换
    JS来推断文本框内容改变事件
    Java学习笔记——JDBC之PreparedStatement类中“预编译”的综合应用
    同类软件大比拼
    Java实现 蓝桥杯 历届试题 最大子阵
    Java实现 蓝桥杯 历届试题 最大子阵
    Java实现 蓝桥杯 历届试题 最大子阵
    Java实现 蓝桥杯 历届试题 最大子阵
  • 原文地址:https://www.cnblogs.com/lauzhishuai/p/5473333.html
Copyright © 2011-2022 走看看