Ogre中文字类的纹理贴到三维物体中
来源:互联网 发布:公路预算软件 编辑:程序博客网 时间:2024/05/22 14:14
就是我需要在三维中,用ManualObject中将文字的纹理图片贴图到三维实体中。
做完发现不难,但是找的时候犯傻了,所以查了很多资料,⊙﹏⊙b汗。
这个中文的网页里,还真没有人怎么实现的。可能先太容易了?
1、字体文件是TTF,文件大小足够大,所以包含中文了。
2、文字需要载入,这个有时间写个blog吧。如果不载人,光添加时没有文字图像的。
3、基本实现代码如下:
//获得文字的 Material,这里是fontMaterialOgre::Font* font = (Ogre::Font*)Ogre::FontManager::getSingleton().getByName("ChineseFont","General").get();Ogre::MaterialPtr fontMaterial = font->getMaterial();//不用拷贝也可以,我当时肯定什么做错了。//Ogre::MaterialPtr matClone = fontMaterial->clone("newFontMaterial"); Ogre::String matName = fontMaterial->getName(); std::wstring text = L"天天都快乐!";//中文必须用std::wstringOgre::Font::CodePoint codePoint = *(text.c_str());//第一个文字转换成Ogre::Font::CodePoint码Ogre::Font::UVRect uvRect = font->getGlyphTexCoords(codePoint);//重点是这个,获得该文字的图片UV//Ogre::Font::GlyphInfo glyphInfo = font->getGlyphInfo(codePoint);//这个Ogre::Font::GlyphInfo 里面包含Ogre::Font::UVRect,所以也可以使用。Ogre::ManualObject* manualObject = sceneManager->createManualObject();sceneManager->getRootSceneNode()->createChildSceneNode()->attachObject(manualObject);manualObject->begin(matName,Ogre::RenderOperation::OT_TRIANGLE_LIST);//将 uvRect中的UV添加到对应的点位置就可以了//感觉有点奇怪?有时间,再弄好点吧。先记录一下。manualObject->position(0,5,0);manualObject->textureCoord(uvRect.left,uvRect.top);manualObject->position(5,5,0);manualObject->textureCoord(uvRect.right,uvRect.top);manualObject->position(5,0,0);manualObject->textureCoord(uvRect.right,uvRect.bottom);manualObject->position(0,0,0);manualObject->textureCoord(uvRect.left,uvRect.bottom);manualObject->triangle(0,1,2);manualObject->triangle(0,2,1);manualObject->triangle(0,2,3);manualObject->triangle(0,3,2);manualObject->end();
- Ogre中文字类的纹理贴到三维物体中
- Ogre中渲染到纹理的步骤
- d3d中三维物体到屏幕的呈现
- OpenGL中三维纹理对象的使用
- 我的Unity(2)一点一滴 鼠标拖动物体,物体在三维中移动到该位置。
- Ogre中导入Max烘焙的模型(1)—— 渲染到纹理
- 三维场景中文字
- 在unity中点击三维物体,显示它的名字
- 论OGRE中关于物体的旋转与朝向.
- Ogre中物体的材质显示黑色问题
- (zz)CUDA中三维纹理的绑定和使用
- quest3D中解决鼠标移动到物体上弹出文字
- 建立Win32工程,向三维物体贴纹理
- ogre中设置纹理滤波方式
- Ogre渲染到纹理
- OGRE渲染到纹理
- Arx中文字的三维显示(修改版)
- OGRE Demo_RenderToTexture 渲染到纹理
- 编译WINCE6.0版本VLC
- 客户端MVC架构
- c语言 优先级
- session的openSession()方法与getCurrentSession()方法的区别
- STC8951单片机内部存储
- Ogre中文字类的纹理贴到三维物体中
- String md5 加密
- wchar_t 的输出问题
- javadoc生成API 常见问题
- 指针与数组
- 多系统之间大数据量增量同步解决方案
- tileMap中GID的认识
- 使用 OpenSSL API 进行安全编程
- AJAX异步同步