xna中使用自定义的shader来绘制model
来源:互联网 发布:朝阳永续数据库 编辑:程序博客网 时间:2024/05/16 15:38
XNA中的 Model.Draw() 函数会使用导入model所使用的Content Processor指定的Effect来进行绘制,因此,如果选择的默认的Content Processor,即Model - XNA Framework,则会使用BasicEffect来进行绘制。
若想用自定义的shader绘制model,需要创建一个自定义的ContentPipeline,在ContentPipeline中指定所用的shader,然后用此ContentPipeline来作为model的Content Processor。
步骤:
1.创建一个Content Pipeline Extension Library 项目,命名为CustomContentProcessor
2.CustomContentProcessor类重写为:
[ContentProcessor(DisplayName = "CustomEffectModelProcessor.CustomContentProcessor")] public class CustomContentProcessor : ModelProcessor { protected override MaterialContent ConvertMaterial(MaterialContent material, ContentProcessorContext context) { EffectMaterialContent myMaterial = new EffectMaterialContent(); string effectPath = Path.GetFullPath("MyEffect.fx"); myMaterial.Effect = new ExternalReference<EffectContent>(effectPath); return base.ConvertMaterial(myMaterial, context); } }3. 将model 的Content Processor指定为 CustomContentProcessor
4.自己写一个 MyEffect.fx 文件
5.绘制model的代码
foreach (ModelMesh mesh in myModel.Meshes) { foreach (Effect effect in mesh.Effects) { effect.Parameters["View"].SetValue(view); effect.Parameters["Projection"].SetValue(projection); effect.Parameters["World"].SetValue(Matrix.CreateRotationY(roty)); effect.Parameters["ColorMap"].SetValue(bodyTex); } mesh.Draw(); }
- xna中使用自定义的shader来绘制model
- XNA Shader
- 不错的学习XNA shader的网址
- mfc中使用不同的画笔来绘制图形
- cocos creator 中使用自定义shader
- cocos creator 中使用自定义shader
- XNA 2.0中处理中文绘制
- MFC中使用GDI+绘制自定义的控件
- 自定义View——Shader的使用
- 自定义控件之shader的使用
- shader model 2.0 和shader model 3.0 的对比
- Shader Model 2.0 和 Shader Model 3.0 的对比
- shader中绘制一个心
- Shader教程系列XNA
- cocos2dx使用自定义shader
- 使用CALayer或者drawRect方法来绘制自定义View
- Android中使用ListView绘制自定义表格
- 关于NGUI中ScrollView使用自定义shader没有作用的解决方案
- how to let the process kill itself?
- RDCL报表根据数据数据列数自动调整列宽
- 为什么学C++比C#的长期风险低
- Yii框架扩展JInputElement【输入元素组件】
- 重建议索引(大于30%)
- xna中使用自定义的shader来绘制model
- Windows内存管理概述
- 11年的变化,让我看着ASP.net的成长
- V.I.K.T.O.R:视频编辑界的Instagram
- 多种PS技术,会让你的照片美的不行!!!
- 只有一种数据类型
- 报表开发 --代码优化(第二版)
- 获得数据库表行及表大小
- mysql实验教程