作者pleaselouis (LOUISN)
看板GameDesign
标题Re: [请益] 请问关於 Shader 的问题
时间Wed Aug 19 22:04:22 2009
1F:→ darkflier:首先呢你必须要做的是 08/17 15:36
2F:→ darkflier:\Samples\C++\Direct3D\PostProcess 08/17 15:37
3F:→ darkflier:把这个范例看完你就懂了 08/17 15:37
4F:→ darkflier:重点不是你有几个shader有几个effect 08/17 15:37
5F:→ darkflier:重点是你要用哪个effect 08/17 15:38
6F:→ darkflier:看来你不是很了解technique可以干什麽 08/17 15:39
7F:→ darkflier:并不是所有的technique都被需要使用 08/17 15:40
8F:→ darkflier:你可以只用你要的 即使不是同一个effect 08/17 15:40
9F:→ darkflier:只要输入的vertex format是相同的 就可以被使用 08/17 15:40
10F:→ darkflier:其实不同也可以啦 不过你现在应该不用考虑到那麽深 08/17 15:41
谢谢你的指导 看了两天 还是有许多的疑问 想跟你请教 <(_ _)>
首先是使用多个 Shader 的理解部分 想请你看看 我这样理解是否正确
基本上 就是将每一个关於 Effect 的部份 都各自独立 宣告 载入 Begin Pass 显示
我以范例 \Samples\C++\Direct3D\BasicHLSL Sample 作测试 他的功能是膨胀一个Mesh
我试着加入一个自己写的 Shader 他的功能就只是 把所有Pixel涂成红色
测试结果 两个功能都有出现 但是我涂成红色的Shader 所显示的Mesh 并不会跟着膨胀
所以画面看起来就变成 最一开始未膨胀时 是一个红色的Mesh
但当Mesh开始膨胀後 就覆盖掉红色的部分 露出Mesh原本的纹理
等到又开始缩小到原本的大小後 才会出现红色的Mesh
但是范例 PostProcess 他的所有特效 都可以同时且正确的显示
看他的程式内容 好像是因为 他有把所有的 Texture 有作暂存??
这我不是很确定?? 因为程式码里面 有一个 struct 的内容有 Texture 的物件
同时还包含了 Next Prev 等等的函数功能 但我不是很能理解他...囧
还是...范例 PostProcess 能正确的同时使用所有特效的功能 就是因为你所说的
"只要输入的vertex format是相同的 就可以被使用"
的原因吗...??
看了两天 还不是很懂 你给我的范例 很不好意思...
但还是麻烦你 给我一些指导 谢谢你 <(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.133.21
11F:推 darkflier:.......听起来很像shader code写错 08/19 22:50
12F:→ darkflier:想一想什麽是shader VS PS 他们之间输出传入的资料 08/19 22:51
13F:→ darkflier:你应该连这个最基础的概念都搞错才会这样问 08/19 22:51
14F:→ darkflier:多看多练习就会懂了 08/19 22:53
15F:→ jhs1213:看起来好像是RENDER了两次MESH 一次是原本范例的 08/20 02:47
16F:→ jhs1213:一次是 不会膨胀但是pixel shader输出都是红色的 effect 08/20 02:48
17F:→ jhs1213:膨胀效果是vertex shader做的事,颜色计算是pixel shader 08/20 02:50
18F:→ jhs1213:两者不冲突 只需要一个effect即可达成 08/20 02:50
19F:→ jhs1213:当然也没有 同时载入两个特效就有两种效果这种事 08/20 02:51