Forum Replies Created
-
AuthorPosts
-
并不是闫大讲错了,是你没有想明白为什么这积分里用cos还是sin的值会一样,原因我发下面了
This post has received 1 vote down.为什么就没人把话说完,ZETAAAAAA的公式是对的,对立体角的积分转化为对theta和phi的积分,再转换为sin theta和phi的积分,其实这三个积分都可以做蒙特卡洛,而且值还都是相等的,那么三次蒙特卡洛的区别在哪里?
1.积分公式:第一个积分里面是cos,第二个积分里面是cos sin ,第三个积分里面是sin
2.pdf:(假设都是均匀采样,那么概率密度就是积分区域的倒数)做蒙特卡洛是要当前采样积分结果乘1/pdf的,第一个积分的pdf显然就是半球立体角的倒数1/2pi,第二个积分的pdf(双重积分的pdf用两次采样pdf的乘积)是theta的积分域pi/2的倒数与phi的积分域2pi的倒数乘积= 1 / pi^2,第三个积分的pdf是 sintheta 积分域 1 的倒数 和 phi 积分域 2pi的倒数乘积 = 1/2pi
综上所述,所以不用纠结积分公式里是sin 还是 cos,因为他们的pdf都是 1/2pi,所以无论是cos还是sin都不会改变这个积分的值This post has received 2 votes down.这个pack-unpack的过程仅仅是为了增加传递数据的精度,前后的数值就是一样的没有必要纠结
该作业框架里材质的Texture对象都是使用了opengl内置的mipmap对象,在渲染的时候都是内部自适应的在对应level取值,如果使用内置的mipmap对象来实现minmap该怎么做呢?
但是这样固定步长就是在帧率和精度的trade-off,还是要实现minmap来解决这个问题
还是说是使用opengl自带的mipmap功能,通过调参来实现这里的minmap,这部分文档我又找不到,看了下《Opengl编程指南》第八版247p+的那些内容, 我也没有搞清楚在这个框架里怎么使用那些api,也没个例子说一下
还是在gbuffershader里面再加几个fragdata[]吗?查了资料这个fragdata输出是没有办法控制分辨率的
次数上限200,步长0.04,hit判中bias 0.000001,这样就可以了
我自己破案了,是我自己把克莱姆法则的分子分母搞反了,让大家见笑了,版主能帮我删帖吗?(苦笑.jgp)
麻烦大佬帮忙看一下,是哪里有问题
bump mapping和 displace mapping 的内容我再教程里也没有找到
我是强行把NAN扭成0的,具体的没有跟踪进去看
找到原因了,有的数据是NAN,需要处理一下异常
我这里约束了也没有用
大家在这里集合,这位答主的长文和我的观点一致,作业框架里的吧w恒定为1的做法是一种近似(简化到把重心插值误差修正的算法效果给简化没),导致作业2中的w_reciprocal,作业3中的Z,论文中的Zt都是1,导致的结果就是误差修正的效果全部消失,还是使用了屏幕上的点所在位置去做了插值计算,并没有修正到view space中真正正确的点上
This post has received 1 vote up.而且框架代码里算出来的w_reciprocal一直都是1,这没有异常吗?
This post has received 1 vote up.那为什么w的初始化是1呢??三个顶点的深度值就一样?一定是1?
-
AuthorPosts