Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2007-08-17 04:40:32
Size: 465
Editor: flyaflya
Comment:
Revision 8 as of 2007-08-19 04:48:06
Size: 1051
Editor: flyaflya
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 树型结构
 Render -> NodePath(GeomNode、PandaNode)[Node] -> Geom [GeomVertexData, GeomPrimitive]
 GeomVertexData 保存顶点数据, GeomPrimitive 保存顶点的index
  树型结构
 * Render -> NodePath -> PandaNode(Geom)[GeomVertexData, GeomPrimitive]
 * GeomVertexData 保存顶点数据, GeomPrimitive 保存顶点的index
Line 8: Line 8:
 render(3d) X右,Y前,Z上
 render2d 坐标左下角(-1,0,-1)到右上角(1,0,1)
 
 * render(3d) X右,Y前,Z上
 * render2d 坐标左下角(-1,0,-1)到右上角(1,0,1)
Line 12: Line 12:
 NodePath.setPos(X,Y,Z) #位移
 NodePath.setHpr(H,P,R) #旋转 
 NodePath.setScale(uniform) #缩放
 * 位移 NodePath.setPos(X,Y,Z) #位移
 * 旋转 NodePath.setHpr(H,P,R)
  * 旋转方向
   * Heading: 绕Y轴转
   * Pitch: 绕X轴转
   * Roll: 绕Z轴转
   * 旋转的例子: attachment:hprtest.py 使用simples/tutorial1中的model
 * 缩放 NodePath.setScale(uniform) #

== 文件格式 ==
=== EGG ===
==== 创建EGG ===
 * EggData()
  * .addChild
 * EggPolygon()
  * .addVertex
  * .recomputePolygonNormal
 * EggVertex()
 * EggVertexPool('')
  * .addVertex
 * .loadEggData()

== 镜头 ==
 base.camera

= 地形 =
== 高度图算法 ==
=== Diamond-Square Algorithm ==

= 碰撞 =
== 基础 ==
 * .setCollideMask
 * .setIntoCollideMask
 * .setFromCollideMask

基础

组成结构

  • 树型结构

坐标

  • render(3d) X右,Y前,Z上
  • render2d 坐标左下角(-1,0,-1)到右上角(1,0,1)

移动、形变

  • 位移 NodePath.setPos(X,Y,Z) #位移

  • 旋转 NodePath.setHpr(H,P,R)

    • 旋转方向
      • Heading: 绕Y轴转
      • Pitch: 绕X轴转
      • Roll: 绕Z轴转
      • 旋转的例子: attachment:hprtest.py 使用simples/tutorial1中的model
  • 缩放 NodePath.setScale(uniform) #

文件格式

EGG

==== 创建EGG ===

镜头

  • base.camera

地形

高度图算法

=== Diamond-Square Algorithm ==

碰撞

基础

  • .setCollideMask
  • .setIntoCollideMask
  • .setFromCollideMask

FlyaflyaPanda3dNote (last edited 2009-12-25 07:15:27 by localhost)