使用Ogre::ManualObject 绘制自定义图形
在ogre中如果需要进行自定义图形绘制可以使用ManualObject。例如绘制一个三角形的用法如下:
SceneNode* pGridNode = m_pBaseNode->createChildSceneNode("gridNode");
//创建ManualObject
Ogre::ManualObject* grid = m_pSceneMgr->createManualObject("gird");
//创建材质
//使用ogre的自带材质
grid->begin("BaseWhite",RenderOperation::OT_TRIANGLE_LIST);
//顶点顺序默认为逆时针可见
grid->position(100.0f,,); //vertex1
grid->colour(ColourValue(,,,));
grid->position(,,);
grid->colour(ColourValue(,,,)); //vertex2
grid->position(-100.0f,,);
grid->colour(ColourValue(,,,)); //vertex3
grid->end();
pGridNode->attachObject(grid);
绘制1个Quad
void EditorScene::DrawQuadIndexed()
{
//使用顶点缓存绘制一个quad 只需要指定4个vertex
SceneNode* pGridNode = m_pBaseNode->createChildSceneNode("gridNode",Vector3(,,));
ManualObject* quad = m_pSceneMgr->createManualObject("quad"); quad->begin("BaseWhite",RenderOperation::OT_TRIANGLE_LIST); quad->position(,-,); //vertex1
quad->colour(ColourValue(,,,));
quad->position(,,);
quad->colour(ColourValue(,,,)); //vertex2
quad->position(-100.0f,,);
quad->colour(ColourValue(,,,)); //vertex3
quad->position(-,-,);
quad->colour(ColourValue(,,,)); //vertex4 //指定顶点
quad->triangle(,,); //triangle1
quad->triangle(,,); //triangle2
quad->end();
pGridNode->attachObject(quad); }
其中Ogre自带三种内置材质:
DefaultSettings :默认材质
BaseWhite :基于光照的白色材质,事实上DefaultSettings的材质就是它
BaseWhiteNoLighting :基于无光照的白色材质
使用Ogre::ManualObject 绘制自定义图形的更多相关文章
- [Xcode 实际操作]九、实用进阶-(19)重写父类的绘图方法,使用图形上下文绘制自定义图形
目录:[Swift]Xcode实际操作 本文将演示如何使用图形上下文,绘制自定义图形. 使用快捷键[Command]+[N]创建一个新的类文件. (在项目文件夹[DemoApp]上点击鼠标右键[New ...
- opencv-7-鼠标绘制自定义图形
opencv-7-鼠标绘制自定义图形 opencvc++qt 开始之前 昨天写了具体的基本的图形绘制, 然后我们使用相应的函数接口进行调用, 便能够在图像上绘制出来相应的图形, 我们以图像绘制为例, ...
- 软件项目技术点(7)——在canvas上绘制自定义图形
AxeSlide软件项目梳理 canvas绘图系列知识点整理 图形种类 目前我们软件可以绘制出来的形状有如下这几种,作为开发者我们一直想支持用户可以拖拽的类似word里面图形库,但目前还没有找到比 ...
- C# 绘制PDF图形——基本图形、自定义图形、色彩透明度
引言 在PDF中我们可以通过C#程序代码来添加非常丰富的元素来呈现我们想要表达的内容,如绘制表格.文字,添加图形.图像等等.在本篇文章中,我将介绍如何在PDF中绘制图形,并设置图形属性的操作. 文章中 ...
- 自定义View—绘制基本图形
一.Canvas能够绘制哪些图形 二.
- 绘制基本图形和线型(StrokeStyle)的设置详解
绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网 ...
- Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解
目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基 ...
- iOS:quartz2D绘图(绘制渐变图形)
quartzD可以用来绘制渐变图形,即图形向外或向内发散,会变得越来越模糊. 渐变分为线性渐变和径向渐变,所谓线性渐变,就是图形以线的方式发散,发散后一般呈现出矩形的样子:而径向渐变,就是以半径的大小 ...
- Achartengine.jar绘制动态图形-饼图
Achartengine.jar绘制动态图形一 --饼图 PS:我们在做安卓程序的时候,免不了会做一些图形,自己可以选择自定义view ,就是用Canvas画,也可以用写好的jar包,就是achart ...
随机推荐
- jQuery--选择器总结
传统选择器:$('#test') id选择器 $('.test') class选择器$('p') 标签选择器$('*') 通配符选择器$('div,span,.myclass') 多个元素选择器层次选 ...
- Operational Amplifiers
1>.Operational Amplifiers:different from the resistor,the inductor and the capacitor,it's a multi ...
- 启动Mysql服务提示Can’t connect to local MySQL server through socket的解决方法
启动Mysql服务常会提示下面错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/ ...
- Ajax与Comet
1.Ajax核心? XHR >>1.新建XMLHttpRequest >>2.open(),接受3个参数. >>3.send(),接受1个参数. >>4 ...
- Python基础知识之排序法
在Python开发中,我们会经常使用到排序法,排序的最简单的方法是用sort(list)函数,它接受一个列表并返回与有序的元素一个新的列表. 原始列表不被改变. a = [5, 1, 4, 3] ...
- 【Java讨论】引用类型赋值为null对加速垃圾回收的作用(转载)
:有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾.其他人则认为这没有任何帮助.是否赋值为null的问题首先在方法的内部被人提起.现在,为了更好的阐述提出的问题,我们来撰写一个Wi ...
- ant打包webservice jar
<project name="helloworldservice" basedir="." default="deploy"> ...
- gantt甘特图的制作过程
甘特图主要是用来做项目管理的,可以清楚的看到任务间的逻辑关系,任务与时间关系和任务间并行关系. 在甘特图中,横轴方向表示时间,纵轴方向并列着活动列表.图表内可以用线条.数字.文字代号等来表示计划(实际 ...
- C#数组全解
数组概述 C# 数组从零开始建立索引,即数组索引从零开始.C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似.但还有一些差异应引起注意. 声明数组时,方括号 ([]) 必须跟在类型后面,而不 ...
- 【转】为现代JavaScript开发做好准备
原文转自:http://blog.jobbole.com/66135/ 今天无论是在浏览器中还是在浏览器外,JavaScript世界正在经历翻天覆地地变化.如果我们谈论脚本加载.客户端的MVC框架.压 ...