芯友网Xin1234.COM

directx的像素着色器没法传入像素坐标这是像素着色器的入口函数这是传入的结构编译报错@灰狗 



狗子电
directx的像素着色器没法传入像素坐标

这是像素着色器的入口函数

这是传入的结构

编译报错
?灰狗 
狗灰
你看看用这个来设置常量呢?
狗子电


9.0貌似不支持这个方法
狗灰
像素着色器的入口函数不是没有参数吗?
狗子电
有啊
你这个是返回白色,不需要传参数
狗灰
自己乱加那当然报错了
狗子电

我只想多传个position进去
不传position就没问题,别的都能传进去
狗灰
定义一个全局const,然后用SetPixelShaderConstantF传4个float值进去吧!
狗子电
应该做不到,像素着色器传入的数据是通过顶点的数据插值后产生的
tna
狗子电
每个像素都不一样,我也没法每个像素都穿啊
算了 我再看看 不行就算了
狗灰
你的意思不是说要自己传坐标,而是判断你要处理的像素点在那个位置?
tna
你们这写法和unity的好像
狗子电
所有像素都要处理
狗灰
我知道所有像素都要处理
tna
顶点到fragment的pos插值吧,以前做光照用到
按道理肯定可以穿,opengl可以
估计是内置变量名对不上之类的
狗灰
?电子狗 我是问你是不是要判断正在处理的是哪个像素?
tna
没搞过dx,实在帮不上
狗子电
我要获取像素的位置,计算镜面反射的颜色
没位置没法算颜色
狗灰
那不就对了吗?我就是问题是不是这个意思啊!
OpenGL里面是用的对应的全局变量来做的  DX里面应该也是相通的吧
狗灰
http://blog.csdn.net/pizi0475/article/details/6968066
狗子电
你这个例子里传入了POSITION
但是我这儿没法传入啊 可能是版本原因
9.0的问题多
狗灰
不清楚
tna
狗子电
谢灰狗:)
狗灰
还有
9.0的话只能支持HLSL2.0
9.0c才支持HLSL3.0

?电子狗 DX9的光照功能不是在固定管线上自带吗?
tna
光照算法有很多种...
环境光*反射光*漫反射之类的
高端的貌似还上什么hdr
狗子电
我想写到shader上
tna
固定管线应该是做不了高级光照
狗子电
固定管线应该没法做特效
狗灰
?ant 固定管线上至少这几个都有的。
那得看你们要做啥特效了?
tna

HDR有不
还有法线贴图处理和光照贴图处理
狗灰
这些不太清楚了
tna
格空
这样加载有错嘛?
没有强转。

这样
狗黑
好怀念2.X的写法啊
狗灰
我以前买过本DX9的书里面有讲光照的,这个压缩包里面包含电子书和光盘例子。
格空
狗灰
格空
怎么加都错。。
狗黑
看看这文件在不在 跟进去啊
狗灰
0xCCCCCCCC说明都没有初始化啊
格空
跟不进去。。
文件肯定实在的
狗灰
?空格 路径呢?
格空

狗灰
?空格 你res里面放一个外面又放一个是啥意思?
格空
一开始我是放在res的  加载不了
然后我就拷贝了一份放外面
狗子电
不能穿position  我把它变成color传进去了,当成position用。 可行?灰狗 
格空
怎么解啊?
pisition怎么传的
position 
格空
存在资源加密的可能吗?
狗子电
tna
......
狗子电
直接这么传啊
‘’
只有镜面反射的效果图
diffuse不是漫反射吗
狗子电
那只是个变量名
光逆
没加全局光和漫反射吧
最近在看光照这一块   
狗子电
没加 只有镜面反射
环境光照  漫反射  镜面反射的公式都差不多记住了
你是自己计算的 还是调用接口的
狗子电
传入了纹理跟关照方向,算出颜色
狗灰
?飘 我记得贴纹理的时候顶点上有个diffuse参数,实际上就是跟cocos的setColor+setOpacity一样是作用。
就是不是你自己手动计算的落
狗子电
你说计算什么啊
光逆
纹理不是计算光照之后再用公式乘上去吗
不一样
狗子电
颜色自己算啊
感觉没啥公式

怎么会没公式
狗灰

你刚开始写的传人参数是PS_OUTPUT啊
光逆
狗子电
漫反射就是 法线跟光线方向越接近,就表示照射越垂直,就越亮
这么像根本就不用记忆公式
镜面反射注意一下 最后来个幂运行
公式记了也要忘
知道原理 就不用记公式
?灰狗  嗯 这是公用的数据结构,顶点着色器的输出跟像素着色器的输入一般来说是一样的
tna
真正的镜面反射,还需要获取到光源反射其他物体后的颜色
现在的基础光照,都是只计算了光源到物理
但是正常的光照 应该是 光源 - 物体 - 物体 之间的相互联系
一个光,不会直直的打到物体上
狗子电
你要反射其它物体就要再加上颜色混合
狗灰
?电子狗 那你刚刚这样不就是像素着色器的输入和输出都写的一样的吗?
tna
最主要还是算出反射后的颜色,和处理...
很复杂的,感觉正常人很难弄,除非花很多时间
看情况的
tna
所以,那些高端引擎,才会拿光照效果做标准...
狗灰
是不是反色颜色 就= 光照颜色 * 表面颜色 哦?
tna
不然以为就那么一条公式就通用光照么...
狗子电
结构一样数据不一样,比如说顶点输出了两个顶点坐标(0,1)和(0,5),像素着色器的输入是插值后的,顶点中间的像素插值后就是(0 1) ,(0 2),(0 3),(0,4),(0,5)
狗灰
白光照任何东西都是原色,没有光就全部黑掉。
tna
比如说 这个光 先射到物体A上 然后反射 到B上 然后再反射都C上
狗子电
你说的反射其它物体其实就是混合,没多麻烦的?ant 
tna
不对,你没懂
这个时候你要算出光照轨迹
~~~黎小小
深圳网络公司招聘 : c++客户端游戏开发工程师多名    cocos2d-x游戏开发工程师多名优秀应届生即可,有游戏开发经验优先,另招聘c++服务端游戏开发工程师2名.要求:棋牌经验2年,cocos2d-x游戏开发工程师2名要求:棋牌经验2年。朝九晚六,周末双休 ,五险一金。地址深圳南山高新园大冲。可联系我2976576693@qq.com
tna
还有算出问题的反射处理
不是单单的单个物体光照处理
狗子电
是啊,这个是你想反射谁就加谁
而不是自动的
你说的是自动就反射,那确实需要算法
tna
烘焙可以固定
但是实时需要动态运算
这个复杂程度和效率
没有深厚功底,估计赶不过来
不然都不会拿光照说事...
狗子电
是哦,我没想这么复杂
tna
那是都以为光源直直打到某个物体上
狗子电
咋会
怎么可能直直打,你没看物体表面都不是平的?
tna
意思是,光线都是经过多重反射,才射到物体上哟
表面区穷都是平,更何况三角渲染
狗子电
你那样搞太麻烦了,光源太多
是量的增加,而不是算法的增加
tna
。。。。。。
你还是没理解到
算了
狗子电
水之浪沧
我擦,为何我听不懂,你们说饿什么呀
狗争无世与
现在是装逼时间
听不懂很正常
水之浪沧
是cocos吗
tna
基础知识,有啥装逼
狗子电
你说的就是环境光
只不过你把环境光想的太重要了,复杂化了
tna
......
算了吧
狗子电
游戏没必要搞这么真实
tna
我看看FF15,然后不说话了
引擎比拼,第一时间都会拿出光照效果
说什么无比逼真
一个物体旁边有一面镜子  远处一个点光源照射过来  物体上的光照效果 要结合镜子  来处理  ?ant 
tna
要表达的是这个吗
水之浪沧
你们好闲哦 
?ant 
主狗
这个在resetTexture的时候会不会有问题?
狗子电
无非就是镜子相当于一个方向光源嘛
镜子怎么是方向光源了
tna
重点在于光线跟踪
狗子电
有面积而已
主狗
?狗狗们
tna
你怎么知道光线经过哪些物体
就算知道,这算法效率...
狗子电
你要么就有一个固定光源 可以算出镜子的反射光线
tna
随着物体个数N增加 复杂度是n>2
狗子电
其它的一概视为环境观
环境光
tna
算了
狗子电
算了  我也没发言权,撸代码去
tna
感觉上就是在讨论应用题,然后一直说 2不是就等于1+1
说不过
狗子电
算了 算了
tna

http://baike.baidu.com/link?url=9sDs9XwoaccveZyugY5_3WVzQQhYBL4k16Jf-J97lQSvVv3WkX-LJIpBRTdkP_yZshEmQO1D2J4X0D7i0ISh9qi3AGt0MKXI9qdkJBBLK9M6sfaEV6yVbSC3cjaeapDZ
狗子电

好的 ,我不懂
不过这追求的是极高的逼真效果,一般引擎用得着吗
tna
zl.霸学.
狗灰.员理管.

相关问题
------分隔线----------------------------
赞助商链接
赞助商链接
推荐内容