
Panda3D引擎
python二级题库
https://python22.blog.youkuaiyun.com/
展开
-
翻译:Panda3D Manual/V. Programming with Panda/B. Panda Filename Syntax
Panda文件名语法(Panda Filename Syntax)为方便移植,Panda3D使用Unix形式的路径名,即使在微软Windows下也如此。目录分隔符用‘/’而不用Windows的‘/’,而且没有盘符。在使用Panda3D库函数时我们一定要遵从Panda的文件名语法。# 错误:loader.loadModel("c://Program Files//My Game//Mod转载 2008-04-15 18:16:00 · 1058 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/L. Render Effects
渲染效果(Render Effects)可以对scene graph上的节点设置各种特殊渲染效果,包括BillboardEffect、Compass Effect、DecalEffect、PolylightEffect及ShowBoundsEffect。RenderEffect代表那些一旦在scene graph中遇到就立即应用于节点的渲染属性,它并不传递到子节点。在这点上RenderEf转载 2008-04-15 18:24:00 · 1155 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/N. Pixel and Vertex Shaders
像素着色器与顶点着色器(Pixel and Vertex Shaders)目前,Panda3D只支持Cg着色语言。(赶紧支持HLSL和GLSL吧)编写Panda3D着色器这部分假设你对Cg着色器语言有一定了解,否则,你最好先读一读有关Cg的资料。编写着色器,必须创建一个如下所示的着色器程序。该例子的作用是保留顶点原来的位置,但调换了顶点颜色的红、绿通道。//Cg////Cg p转载 2008-04-15 18:26:00 · 1514 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/O. Finite State Machines
有限状态机(Finite State Machines)“有限状态机”是来自计算机科学的一个概念,用来表示包含有限个不同状态的系统,以及从一种状态转换到另一种状态的机制。Panda3D 有限状态机,或简称FSM,由一个Python类实现。要定义一个新的FSM,应该从FSM类派生出一个Python类,并通过类的方法来定义状态,这些 方法定义了进入或离开某种状态时的FSM行为。然后你可以根据需转载 2008-04-15 18:27:00 · 1114 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/P. Advanced operations with Panda's internal structures
anda内部数据结构的高级操作这一章讲Panda内部如何描述顶点和可渲染的几何体,以及如何直接读取、操控这些数据。本章属于比较高级的知识,是为高级用户准备的,普通的模型渲染和动画并不会用到这方面的知识。 Panda3D如果存储顶点和几何数据本节主要讲述Panda内部的顶点和几何数据对象的结构及联系。在学习怎样用程序生成几何数据之前,应该仔细阅读本节,全面了解Panda的数据结构。转载 2008-04-15 18:28:00 · 1163 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/Q. Panda Rendering Process
Panda渲染过程Panda的渲染过程由4个类相互作用构成,它们分别是:GraphicsPipe、GraphicsEngine、GraphicsStateGaurdian和GraphicsOutput。本章将详细讲解这些类的作用。注意,这些接口只针对高级用户。如果只是一个打开窗口进行基本的3D渲染的简单程序,就用不着这些接口,因为当你在程序开头import direct.directbas转载 2008-04-15 18:29:00 · 1942 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/R. Panda Utility Functions
Panda效用函数(Panda Utility Functions)Panda3D提供了一系列效用函数,我们可以使用它们来认识各种对象和方法。访问这些效用函数必须导入PythonUtil模块:from direct.showbase.PythonUtil import *“*”可以用模块里任何功能函数代替。使用pdir()命令列出类或对象的属性和方法,并在控制台上输出这些信息。pd转载 2008-04-15 18:29:00 · 1329 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/S. Particle Effects
粒子效果(Particle Effects)粒子效果由一些小的图像在相同的外力作用下运动形成。粒子经历一个出生、移动、死亡的过程。粒子系统是动态的,用于实现烟花、泡沫、蒸汽等效果,甚至可以用来模拟一大群气球。从 本质上讲,任何粒子系统都需要3个关键部分:渲染器(renderer)、发射器(emitter)和工厂(factory)。渲染器将粒子转化成屏幕上 可见的物体;发射器为粒子分配初始位转载 2008-04-15 18:30:00 · 1264 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/T. Collision Detection
碰撞检测(Collision Detection)碰撞检测使2个物体在相撞时能反弹开来,它的过程不仅包括为碰撞事件发送消息,而且还要保证物体不会彼此穿透。碰撞检测是营造虚拟环境沉浸感(immersion)的有力工具,不过该技术有点复杂。有2 种方法实现碰撞检测。一种是创建空间碰撞几何体来测定碰撞,例如球体或多边形。另一种方法是允许与任何几何体碰撞。虽然第一种更复杂,实现起来也更难,但 它运原创 2008-04-15 18:31:00 · 2073 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/V. Math Engine
数学引擎(Math Engine)Panda3D内建了许多操作向量、矩阵和4元组的方法。相关的类有:(等着吧,有人会写) 矩阵表示(Matrix Representation)时不时有人问:Panda的矩阵是以行优先(column-major)还是列优先(row-major)格式来存储呢?不幸的是,提出问题的人通常没有意识到矩阵其实有4种表示方法,其中2种称为“行优先”,另2种称为转载 2008-04-15 18:33:00 · 990 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/X. Motion Paths
运动路径(Motion Paths)Panda3D的运动路径是在建模软件中制作的样条(spline)并导出到egg文件。把egg文件导入程序后,各节点就可以使用这些运动路径实现复杂的运动。能生成运动路径的egg文件都有“curve”标签。首先,我们必须导入Mopath和MopathInterval模块。虽然运动路径提供了自己的播放函数,但运动路径interval拥有更丰富的功能。fro转载 2008-04-15 18:34:00 · 1092 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/Y. Timing
计时(Timing)尽管python的time模块的计时功能已经很完善了,panda还是提供了一个内建的计时系统,便于我们进行延迟和CPU停顿。全局时钟(The Global Clock)当panda启动时,全局时钟被导入到全局名字空间。为得到从最后一帧绘制完到现在的时间(秒),请调用:globalClock.getDt()另一个有用的函数是从程序开始到现在的时间(秒)转载 2008-04-15 18:35:00 · 901 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/H. Tasks and Event Handling
任务与事件处理(Tasks and Event Handling)Task是你写的子程序,由Panda在每一帧调用。同样,事件处理器(Event handler)也是你写的子程序,当某个事件发生时由Panda调用。这两种子程序使用户能够在帧与帧之间更新panda世界。 TasksTask是一种特殊函数,在程序运行时每一帧调用一次。在概念上有点像线程,但在Panda里,task并不是转载 2008-04-15 18:21:00 · 1207 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/G. Intervals
IntervalsPanda3D的Interval系统是一种复杂的脚本行为回放机制。使用Interval,我们可以建立复杂的相互关联的动画、声音效果或者其他行为,并按需执行脚本。该系统的核心为Interval类,分为好几种不同类型,将在后面详细介绍,它们共有以下特性:每个Interval都表示在一段有限的时间内发生的一个行为(或一系列行为)。Interval 系统的威力来自Sequen转载 2008-04-15 18:20:00 · 1415 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/D. Actors and Characters
Actors与CharactersPanda3D同时支持骨骼动画(skeletal animation)和变形动画(morph animation),Panda的egg文件格式可以包含一个可动画的模型或一个动画序列,或两者都包含。Actor类就是为可动画模型和动画准备的,因为它继承自NodePath类,因此NodePath类的所用方法它都能用。然而,Actor是C++类NodePath转载 2008-04-15 18:18:00 · 1497 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/E. Camera Control
摄影机的控制(Camera Control)Panda3D把摄影机当成一个PandaNode节点,因此可以像其他节点一样对它进行操作。真正的摄影机是在ShowBase里定义的一个名为base.cam的NodePath,在它之上还有一个更简单名为base.camera的NodePath节点,我们一般在代码里控制base.camera。 默认的摄影机驱动(The Default Cam转载 2008-04-15 18:19:00 · 1462 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/I. Fog and Lighting
雾与光照(Fog and Lighting)雾与光照是增强空间立体感和纵深感的两种技术。Panda3D提供了好几种灯光的顶点光照(Vertex lighting)技术。顶点光照对整个模型进行着色,因此模型面片越多,光照效果越好。在灯光作用比较重要的地方,在不影响帧率的前提下最好将模型尽量tessellate(网格化)。 雾本节的内容可能有些错误。请参考讨论页。基本的雾创建雾转载 2008-04-15 18:22:00 · 1042 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/J. Text and Image Rendering
文本和图片渲染(Text and Image Rendering)Panda能够在屏幕或3维世界动态地绘制文字,它支持全部Unicode字符集,可以方便地渲染各国语言(包括亚洲语言,但要选择恰当的字体)。Panda3D提供3种文本接口,你可以按需选择:TextNode是基础的文本渲染类,其他两个类都是构建于它之上;OnscreenTex是TextNode的高层封装,OnscreenImag转载 2008-04-15 18:23:00 · 1327 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/M. Texturing
纹理(Texturing)最简单的纹理方式就是在建模程序中使用一张贴图。当你导出模型时,请留意egg文件与图片文件的相对路径,相对路径被编码到egg文件里。当panda载入egg文件时,它将搜索egg文件相对路径。Panda支持JPG、PNG、TIF等图片格式。接下来将详细介绍各种纹理方法。 简单纹理(Simple Texturing)纹理图(texture map)或纹理图像转载 2008-04-15 18:25:00 · 2115 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/U. Hardware support
硬件支持(Hardware support)本章介绍Panda3D对键盘和鼠标的支持,以及引入joystick的方法。 键盘支持(Keyboard Support)Panda3D内置对键盘的支持。按下键盘发送事件。当第一次被按下时,每个键发送一个事件,松开后再按下时,将再次发送事件。以下的代码接受键盘事件:self.accept( , ) self.accept(转载 2008-04-15 18:32:00 · 1391 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/W. Physics Engine
物理引擎(Physics Engine)Panda3D具有一个功能非常基本的物理引擎,可以对各种物体施加力的作用,它可以处理角向力(angular force)、线性力(linear force)及粘性(viscosity)。使用碰撞引擎必须首先启用粒子系统。因为粒子系统依靠物理引擎来移动和更新粒子,所以我们需要打开粒子系统,然后在物理引擎里添加任务(task),用以监视、更新场景里允许物转载 2008-04-15 18:33:00 · 1142 阅读 · 0 评论 -
编译Panda3D
从http://panda3d.org下载完整的源代码panda3d-1.3.2.zip,解压缩到文件夹(以D:/panda3d-1.3.2为例),编译说明在D:/panda3d-1.3.2/doc。 Panda3D提供两套独立的编译方法: ppremake和makepanda,前者十分复杂,后者较简单,且前者正被后者所取代。那毫无疑问我们用makepanda。两种编译方法的转载 2008-04-15 18:13:00 · 3051 阅读 · 1 评论 -
搭建Panda3D环境
先学习Panda3D的使用,能灵活使用并深入了解其架构后,才有可能对它进行定制或功能扩展。下面是XP下的安装和设置。从 http://panda3d.org 下载panda3d-1.3.2.exe安装文件,双击安装,可以自己设置安装路径,我用默认C:/Panda3D-1.3.2。安装完如果没有自动运行Panda Greeting Card,可以从开始->所有程序-> Panda3D-1.3.2转载 2008-04-15 18:14:00 · 3943 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/A. The Scene Graph
场景组织Scene Graph节点树很多简单3维引擎都使用一个模型列表(list)来组织场景,渲染时首先分配(或从磁盘载入)一个3维模型然后插入模型列表。在没有插入列表之前,模型对渲染器(render)来说是“不可见”的。Panda3D的场景组织要复杂一些,它使用树结构而不是列表。同理,插入到树里之前,物体对渲染器不可见。这棵树由PandaNode类的对象构成,该类作为ModelN转载 2008-04-15 18:15:00 · 2527 阅读 · 1 评论 -
翻译:Panda3D Manual/V. Programming with Panda/C. The Configuration File
配置文件(The Configuration File)本章介绍Panda3D使用的配置文件。 配置Panda(Configuring Panda)配置文件Config.prc 在etc文件夹里,它控制Panda配置选项——包括使用OpenGL或DirectX,打印多少调试信息等。下面的表格列出最常用的变量:转载 2008-04-15 18:17:00 · 978 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/F. Sound
声音(Sound)开源的Panda3D使用一个商业声音库FMOD,但如果你的程序不用于商业目的,可以免费使用FMOD。FMOD是一个强大的跨平台声音引擎,支持多种声音文件——MP3、WAV、AIFF、MIDI、MOD、WMA、OGG Vorbis。详情见http://www.fmod.org。如果不想用FMOD,在panda的bin文件夹下删除fmod.dll和libfmod_audi转载 2008-04-15 18:20:00 · 1326 阅读 · 0 评论 -
翻译:Panda3D Manual/V. Programming with Panda/Z. Networking
网络(Networking)Panda3D提供网络游戏支持,包括一个底层的基于流的API和一个高层的分布式对象API。本章的读者需要熟悉网络的基本概念,尤其是IP协议。这部分文档没有完成,请查阅论坛获取最新的信息。 数据报协议(Datagram Protocol)构成数据报协议的类支撑起Panda网络功能,有了这些类,我们就可以使用UDP或TCP协议传送开发者自定义(devel转载 2008-04-15 18:36:00 · 1491 阅读 · 0 评论