http://www.cnblogs.com/Zephyroal/archive/2011/10/10/2206509.html

一天干掉一只Monkey计划(序)

一天干掉一只Monkey计划(序)

经过n久的焦头烂额,手头的工作终于开始轻松下来,想法很多,但出于兴趣第一,及将来对项目多做贡献的角度,决定目前最大的精力放在Shader效果上,辅之以C++深入的学习。

千里之行始于足下,要专心学习shader还是用RenderMonkey这样的工具,排除其他编程方面的干扰为佳,以前对此工具还略有入门,正好现在拿来开刀:

1,

首先记录下,网上一些关于renderMonkey的教程:

一步一步学RenderMonkey

http://blog.csdn.net/tianhai110/article/details/5668832

《RenderMonkey的基本使用方法》

http://www.cnblogs.com/mixiyou/archive/2009/10/05/1578208.html

《用RenderMonkey 进行shader开发(一)》

http://school.ogdev.net/ArticleShow.asp?id=5551&categoryid=5

《用RenderMonkey 进行shader开发(二)》

http://school.ogdev.net/ArticleShow.asp?id=5552&categoryid=5

renderMonkey官方网址(提供renderMonkey下载)

http://developer.amd.com/gpu/rendermonkey/Pages/default.aspx

RenderMonkey制作photoshop特效

http://www.qqread.com/soft-engineering/q372752_2.html

2,

还有鉴于RenderMonkey由于长时间的不更新,附上其藏在amd角落的位置:

http://developer.amd.com/archive/gpu/rendermonkey/pages/default.aspx

3,

万籁具备,只欠东风,现在最需要的就是订立一个详细的计划,目标是首先走一遍基本的光照模型,然后一天收集一个符合cool标准的shader效果,从原理到实际实现加以吸收,争取一天干掉一只猴子,为期一月,再行引擎改造大业。

4,Basic

这里就偷个懒,直接套用逍遥剑客的blog:

http://blog.csdn.net/xoyojank/article/details/1788982

RenderMokey是ATi发布的一个快速开发着色器程序和效果的工具.它解决了几个问题:

1. 着色器程序通常需要一个框架才能运行.这样的一个工具必须可以设置几何和纹理等信息而不用额外的代码

2. 传统的着色器程序开发时间消耗太大,而且需要高质量的代码做为依托.这就增加了开发难度,并限制了技术的共享

3. 着色器开发工具应该在程序员和美工之间建立一个桥梁,所以它不应该依赖任何API,也不应该需要太高的编程能力

4. 工具的框架应该要能够适应未来技术的发展

基于这些目标,ATi推出一个强大而且高效的开发工具:RenderMonkey,它大大降低了着色器程序开发的门槛,你只需要基本的图形学知识就可以使用它.

主界面

Workspace窗口

这里面包含很多不同类型的元素,可以分成4组:

1. 组元素,用来把元素组织成一个层次结构,如effect,pass等

2. 着色器或效果用到的参数,包括矩阵,向量,颜色等.它们可以用Artist编辑器来设定,我们会在后面提到

3. 着色器或效果的状态控制,包括着色器程序,硬件渲染状态,或顶点流映射

4. 着色器用到的资源,通常是网格和纹理

这些东西被保存到一个.RFX文件中,里面是XML格式的.这样可以用程序来方便地读取

效果预览窗口

从这里你可以看到着色器程序的最终效果.当然,你可以用鼠标来控制摄像机观察方式

输出窗口

如果在这里出现了错误信息,你可以像在VC中一样双击它,RenderMonkey会自动打开编辑器窗口,并把光标定位到相应的位置

编辑器窗口

它可以用来编辑ASM代码或HLSL,而且在编辑的同时状态栏还会给出相应的代码提示

Artist编辑器

这个窗口默认不显示,可以通过View->Artist Editor来调出来

在这里你可以设置各个参数元素,而且可以即时显示结果

下面看一下整个工程的组织形式

1. 库存变量,这里是View-Projection矩阵

2. 流映射,即这里的PNTT,应该是定义的VertexShader的顶点输入格式,双击可以打开编辑框

3. 效果组,它代表一个独立的Shader程序,你可以在一个工作空间中建立多个Shader

变量列表

纹理

模型

Pass

模型引用

渲染状态

VertexShader

PixelShader

纹理信息(我想可能是Sampler吧?)

一天干掉一只Monkey计划(序)【转】的更多相关文章

  1. 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 【转】

    http://www.cnblogs.com/Zephyroal/archive/2011/10/10/2206530.html 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 1, ...

  2. monkey工具使用(未完待续)

    monkey命令详解: 转自:http://blog.csdn.net/jlminghui/article/details/38238443 http://www.cnblogs.com/wfh198 ...

  3. Monkey学习(2)简单命令合集

    Monkey命令的简单帮助 执行所有命令的前提是,必须先链接模拟器或者实体机,否则会报如下错误信息: 打开命令行窗口,WIN+R,输入CMD 在命令行窗口执行:adb shell monkey –he ...

  4. 转——Android测试之monkey

    一.为什么要用Monkey 测试?   简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性.号称最快速有效的方法.有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一 ...

  5. 为我所用之Monkey

    文章由来:有朋友问到Monkey的使用的问题,就整理一下Monkey的基本使用,以备后用查询. Monkey是一Android中的一个命令行工具,eclipse中有自带此工具,可以运行在模拟器以及真实 ...

  6. hdu 4358 Boring counting 离散化+dfs序+莫队算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4358 题意:以1为根节点含有N(N <= 1e5)个结点的树,每个节点有一个权值(weight ...

  7. BZOJ3786星系探索——非旋转treap(平衡树动态维护dfs序)

    题目描述 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球没有依赖星球. ...

  8. WIN7使用过360系统急救箱后出现的任务计划程序文件夹删除的办法

    直接进主题(怀疑系统有问题用了下360系统急救箱,用完后发现计划任务多了个360superkiller文件夹,右键直接是删除不了的) 尝试了各种方法都是不爽,突然想到计划任务不是在在系统盘下的一个文件 ...

  9. [LeetCode] 1028. Recover a Tree From Preorder Traversal 从先序遍历还原二叉树

    We run a preorder depth first search on the rootof a binary tree. At each node in this traversal, we ...

随机推荐

  1. LeetCode the longest palindrome substring

    回文检测,参考http://blog.csdn.net/feliciafay/article/details/16984031 使用时间复杂度和空间复杂度相对较低的动态规划法来检测,具体的做法 图一 ...

  2. JMeter 定时器(Synchronizing Timer)之集合点应用

    性能测试中我们经常提到一个概念就是“并发”,其实在实际真实的性能测试中是不存在真正的并发的.为了更真实的模拟对一个请求的并发测试场景,我们通常设置一个集合点,JMeter中提供了这样的一个功能设置. ...

  3. servlet(6) - servlet总结 - 小易Java笔记

    垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...

  4. 使用lombok省略get、set代码

    首先下载lombok的jar包,如果是maven项目,直接加依赖 <dependency> <groupId>org.projectlombok</groupId> ...

  5. shell 通过ANSI转换颜色

    格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[控制码" 如果单纯显示字体颜色可以固定控制码位0m. 格式: echo -e "\033[字背景 ...

  6. k8s的Dashboard

     前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  7. 360开源的pika

    http://www.360doc.com/content/16/0531/14/13247663_563808424.shtml https://github.com/Qihoo360/pika/b ...

  8. Linux删除重复行

    本文转自http://blog.csdn.net/ithomer/article/details/6926325 文本处理时,经常要删除重复行,下面是三种方法 第一,用sort+uniq,注意,单纯u ...

  9. Android仿QQ登录下拉历史列表

    demo中包含了Sqlite数据库增删改查,对存储的账号进行按照最新的时间排序,限制了最多存储5条数据. 效果图: 1.首先创建MyHelper建表: public class MyHelper ex ...

  10. 使用 gulp 压缩 CSS

    请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 使用 gulp 压缩 JS 压缩 css 代码可降低 css 文件大小,提高页面打开速度. 我们接着将规律转换为 gulp 代码 规律 ...