Axiom 3D Engine

An open-source, cross-platform, managed 3D rendering engine for DirectX, XNA and OpenGL running on .Net and Mono

开源,跨平台,支持多种渲染方法的3D引擎,可以运行于.Net和Mono平台,支持Dx3d,XNA,OpenGL

Orge3D的.Net版,我没有看过他的源码,但貌似就是用C#写的Orge.

Texture:

Basic, Multi-texturing, Bumpmapping, Mipmapping, Volumetric, Projected:

  • Support for a variety of image formats, including .png, .jpg, .gif, .tga, with dynamic MipMap generation. .dds files are supported for 2D, Volume, and Cubic textures in both DirextX AND OpenGL via DevIL.
  • 1D, 2D, Cubic, and Volume textures.

Shader:

Vertex, Pixel, High Level:

  • Vertex/Fragment programs, including Cg and HLSL high level plugins, as well as support for loading ASM shaders
  • Vertex/Fragment programs are also fully configurable in the material files, and allow for parameters that instruct the engine to track various states and supply them automatically to the program parameters, such as worldviewproj_matrix, light_position_object_space, camera_position_object_space, etc.
  • Support profiles at present are: * DirectX 8 - vp_1_1, ps_1_1 - ps_1_4 * DirectX 9 - vp_2_0, ps_2_0 * OpenGL - arbvp1, arbfp1, fp20 (GeForce3/4 Register and Texture Combiners supported via nvparse), vp30/fp30 (GeForceFX).

Scene_Management

General, BSP, Octrees, LOD:

  • Extensible Hierarchical Scene Graph
  • Octree scene manager plugin which includes a basic heightmap loading scene manager

Animation:

Keyframe Animation, Skeletal Animation:

  • Skeletal animation with an Ogre .skeleton file loader. Features include multiple bone assignments per vertex, smooth frame rate scaled blending, and multiple animations can be blended together to allow for seamless animation transitions.
  • Pose animation allowing for facial animations and more.
  • Allows animations to be assigned to nodes in the scene graph, allowing objects to move along predefined spline paths.

Mesh:

Mesh Loading, Skinning, Progressive:

  • Fast Mesh loader support the Ogre .mesh file formats 1.10 and 1.20, now including pre generated LOD levels based on the entitie's distance from the camera.
  • Exporters for various 3D Modeling programs, including Milkshape and 3dx Max can be downloaded from the Ogre downloads page

Special Effect:

Environment Mapping, Billboarding, Particle System, Sky, Fog, Mirror:

  • Spherical environment mapping
  • Particle systems, extendable via plugins for defining new Emitters and Affectors and definable through Ogre particle scripts.
  • Support for skyboxes via cubic textures, and sky planes.
  • 2d billboard support, with built in pooling to reduce runtime overhead. Supports sprites, and is also used for the particle system.
  • Post-process compositor effects for HDR, Bloom, Motion Blur etc.

Rendering:

Fixed-function, Render-to-Texture, Fonts, GUI:

  • Extensible render system support, via plugins. Current implementations include Tao for OpenGL, and Managed DirectX 9, Xna is under development.
  • Virtual hardware vertex/index buffer interface, allowing for faster rendering of primitives by placing geometry data in video AGP memory, eliminating the need for keeping it in application memory and copying it over every frame.
  • Support for Ogre .material files, allowing the flexibility for controlling fixed function render state on a per object basis, in addition to specifying texture blending and texture effects such as scrolling and rotating.
  • Smart rendering pipeline, with sorting designed to reduce render state changes as much as possible. Transparent objects are also sorted to allow blending into the scene correctly.
  • Font bitmap support using the Ogre .fontdef format for loading bitmaps based and dynamically generated font bitmaps.

程序基本步骤:

  1. Create the Root object.
  2. Define the resources that the application will use.
  3. Choose and set up the render system (that is, DirectX, OpenGL, etc).
  4. Create the render window (the window which Axiom will render onto).
  5. Initialize the resources that you are going to use.
  6. Create a scene using those resources.
  7. Set up any third party libraries and plugins.
  8. Create frame listeners.
  9. Start the render loop.

定义资源

资源包括 textures, models, scripts, 等等. . Thus far we have been using EngineConfig.xml to define Resource paths.
通过 ResourceGroupManager class 来新增资源路径:

1.ResourceGroupManager.Instance.AddResourceLocation(location, type, group);

第一个参数是 文件夹名字.

第二参数是资源类型: "Folder" (文件夹) or "Zip" (压缩包).

第三参数,资源组.

1.ResourceGroupManager.Instance.AddResourceLocation("Media", "Folder", "General");

选择渲染系统

1.root.RenderSystem = root.RenderSystems["DirectX9"];

选项有 DirectX9, OpenGL, and Xna.

1.Root.Instance.RenderSystem.ConfigOptions["Video Mode"].Value = "1280 x 720 @ 32-bit color";

这里有些共有设定:

Name Purpose
Video Mode Sets resolution and color-depth.颜色深度
Full Screen Sets whether to use the full screen.是否全屏
VSync Syncs FPS to monitors refresh rate,垂直同步
Anti-Aliasing Gives the appearence of smoother edges.抗锯齿
Floating-Point mode 浮点模式,平滑或则快速

创建一个渲染窗口.

1.RenderWindow window = root.Initialize(true, "Window Title");

第一个参数:是否创建窗口.如果true,就会创建.

1.RenderWindow window = root.CreateRenderWindow("Axiom Render Window", 800, 600, false);
不创建窗口,而用winform窗口,就用下面的代码.
Axiom.Collections.NamedParameterList paramList = new Axiom.Collections.NamedParameterList();

paramList["externalWindowHandle"] = pictureBox1.Handle;
Axiom.Graphics.RenderWindow window = _Root.CreateRenderWindow("RenderWindow", pictureBox1.Width, pictureBox1.Height, false, paramList);

转载于:https://www.cnblogs.com/niconico/p/5007720.html

Axiom3D学习日记 0.Axiom基础知识相关推荐

  1. 210学习日记(18)_ARM基础知识

    210学习日记(18) --ARM基础知识 注意: 以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!! 问1:ARM处理器工作模式有几种?各种工作模式下分别有什么特点? 答1:ARM ...

  2. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  3. 汇编学习(1)——基础知识

    汇编学习(1)--基础知识 ---谨以此系列文章记录我的汇编学习.  关于汇编 说起汇编语言,那自然不得不想到机器语言,在汇编语言尚未诞生之际,程序猿们只能非常苦逼的敲着0和1,还要记住一大堆复杂难记 ...

  4. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

  5. Python学习--最完整的基础知识大全

    ##Python学习–最完整的基础知识大全 关于python的基础知识学习,网上有很多资料,今天我就把我收藏的整理一下分享给大家! #####菜鸟教程python2 #####菜鸟教程python3 ...

  6. 小猪的Python学习之旅 —— 1.基础知识储备

    小猪的Python学习之旅 -- 1.基础知识储备 引言: (文章比较长,建议看目录按需学习-) 以前刚学编程的时候就对Python略有耳闻,不过学校只有C,C++,Java,C#. 和PHP有句&q ...

  7. 前端学习笔记(js基础知识)

    前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...

  8. 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度

    大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...

  9. 笔记|李沐-动手学习机器学习|CNN基础知识(视频19-23)

    李沐-动手学习机器学习|CNN基础知识 卷积层(视频19) 从全连接到卷积(卷积算子) 进行图像识别的两个原则 如何从全连接层出发,应用以上两个原则,得到卷积 卷积层 二维交叉相关 二维卷积层 交叉相 ...

最新文章

  1. java多线程-阻塞队列BlockingQueue
  2. mse函数(均方误差函数)
  3. xss攻击突破转义_WEB安全之XSS攻击方式与防御方式
  4. 解决Could not reserve enough space for object heap
  5. python消息队列框架持久化_消息队列如果持久化到数据库的话,相对于直接操作数据库有啥优势?...
  6. eval函数pythonmopn_python3中的 eval函数
  7. matlab光束,matlab仿真光束的传输特性
  8. android tts离线库,【Android语音合成TTS】云知声离线TTS使用详解
  9. Cloakroom BZOJ2794 POI2012(背包问题)
  10. Windows 2008 R2 标准版 ie提示 当前安全设置不允许下载该文件 解决办法
  11. table 超级详细的 商品订单列表
  12. ctrl导致开机弹出计算机,电脑开机出现ctrl+alt+del是什么原因及解决方案
  13. 快递查询单号查询,分享简单好用查询技巧
  14. Django模型之Meta属性详解
  15. 笔记本电脑找不到计算机配置,笔记本电脑收不到wifi的解决步骤_笔记本电脑搜不到wifi怎么设置-win7之家...
  16. 计算机word教案设计,Word文档教学设计
  17. UE4摄像机系统解析
  18. 【Spark ML】第 1 章:机器学习简介
  19. 华为路由器限速:MQC限速和QOS
  20. 网易云易盾验证码海外版发布,支持12种主流语言

热门文章

  1. 微信小程序-模板的定义和使用
  2. 怎样去掉word文档中烦人的红线?
  3. SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具)
  4. Ext js 6 - Class System
  5. 网络摄像头100万.200万.300万.400万.500万分辨率多少?
  6. 《深入了解TensorFlow》笔记——Chapter 4.1 输入数据集
  7. 位置服务器的参数,服务器配置参数详解
  8. autoware如何启动
  9. 前端npm install报错too many levels of symbolic links解决办法
  10. 时间序列 工具库学习(1) tsfresh特征提取、特征选择