Ogre中使用HLSL的一个例子
来源:互联网 发布:网络系统集成中的软件 编辑:程序博客网 时间:2024/05/20 02:21
本文主要参考的是http://www.ogre3d.org/tikiwiki/HLSL&structure=Cookbook,并据此写了一个在Ogre中使用HLSL的例子。在Ogre中使用HLSL主要分为三部分,首先是材质脚本的编写,其次是顶点shader和片段shader的编写,最后是在应用程序中使用以上程序。我这个例子的功能是将一个模型赋予纹理贴图。详细的就不解释了,看参考的网址即可,主要是注意shader程序在各个文件之间的对应关系及版本问题(如vs_1_1和ps_1_1)。
材质脚本(wrinkle.material)是这样子的:
- vertex_program wrinkle_vs hlsl
- {
- source wrinkles.hlsl
- entry_point wrinkle_vs
- target vs_1_1
- default_params
- {
- param_named_auto worldViewProj worldviewproj_matrix
- }
- }
- fragment_program wrinkle_fs hlsl
- {
- source wrinkles.hlsl
- entry_point wrinkle_fs
- target ps_2_0
- }
- material hlsl_test
- {
- technique
- {
- pass
- {
- vertex_program_ref wrinkle_vs
- {
- }
- fragment_program_ref wrinkle_fs
- {
- }
- texture_unit
- {
- texture terr_rock6.jpg
- }
- }
- }
- }
- void wrinkle_vs(
- float4 position : POSITION,
- out float4 oPosition : POSITION,
- float2 uv : TEXCOORD0,
- out float2 oUv : TEXCOORD0,
- uniform float4x4 worldViewProj)
- {
- oPosition = mul(worldViewProj, position);
- oUv = uv;
- }
- float4 wrinkle_fs(
- float2 uv : TEXCOORD0,
- uniform sampler2D tex) : COLOR
- {
- return tex2D(tex, uv);
- }
- Ogre::SceneNode* mModelNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("ModelNode");
- Ogre::Entity* mModel = mSceneMgr->createEntity("MyModel", "model.mesh");
- mModel->setMaterialName("hlsl_test");
- mModelNode->attachObject(mModel);
0 0
- Ogre中使用HLSL的一个例子
- Ogre中使用HLSL的一个例子
- OGRE中使用HLSL
- 在OGRE中使用HLSL
- Ogre中控制HLSL参数
- Ogre中控制HLSL参数
- Reiiden制作笔记H(OGRE Materilas/HLSL 的完整例子)
- [HLSL]关于shader中normalize失效的一个问题
- hlsl shader编译中遇到的一个坑
- VC++中使用Zlib的一个例子
- VC++中使用Zlib的一个例子
- Ogre中Fresnel例子分析
- OGRE中.skeleton文件转换为.xml文件的例子
- OGRE Demo_Ocean 例子的分析
- OGRE Demo_Instancing 例子的分析
- 一个HLSL的常量数组问题
- VC6.0中gdiPlus的使用以及一个小例子
- VC6.0中gdiPlus的使用以及一个小例子
- ACPI Tables
- 人工神经网络ANN的一些概念的集合
- ViewPager结合Fragment实现页面左右滑动
- addd
- visual studio 2010 中VC++自定义项目模板
- Ogre中使用HLSL的一个例子
- 返回值和右值引用的传递问题
- win7系统下php环境搭建教程(ZendStudio-5_5_1)(apache_2.2.6-win32-x86-no_ssl)(php-5.3.10-Win32-VC9-x86)
- 【Codility】PassingCars
- [leet code] Balanced Binary Tree
- PHP获取类名及所有函数名
- UVA 11106 - Rectilinear Polygon(几何+贪心)
- 牛人分享:八年的奋斗与思考--我的电源之路
- LA 3357 Pinary