Forum Replies Created
-
AuthorPosts
-
刚才回复时提交验证码失败,最后忘记点回复了,上面这条回复的是 #5320
This post has received 1 vote up.确实,划分数为 p 时在最后计算各个桶的 cost 时只会有一个 O(p) 的常数,增大的主要还是空间复杂度。刚发现这部分常数我写成了 O(p^2),我修改一下,感谢提醒。
This post has received 1 vote up.SAH 里面的桶数量越大, 不一定渲染的越快, 只是更加接近最优划分.
要想得到最优划分只要对每一个物体之间的划分点都计算损失并取最小就可以, 就是上面 sublimation 同学实验的做法. 但是桶的数量越大, 建树时间越慢. 所以桶的数量设置为一个能达到建树时间和划分时间的平衡的值就可以了.
This post has received 1 vote down.不知道你用的是不是最新的代码框架,最新的代码框架里面更新 point 时前面乘的系数是 kn 而不是 kh,不过我刚才又去确认了一下,目前最新的作业三更正公告里面 games 的下载链接下载下来的代码框架中的注释仍是 kh,另外两个链接是正确的。如果你用的系数是 kh 的话,改成 kn 试试。
我注意到你的微分 dU 和 dV 的求法不对,这里要符合物理意义应该用两处 norm 之差,而不是差的 norm。
This post has received 2 votes up.同学你好,之前助教的意思是由于我们用的是 RGB 图像而非灰度图像作为凹凸贴图,所以应该用某种方式把 RGB 信息映射为一个标量。作业文档中在这里使用的方式是
norm
,所以这里应该是使用texture->getColor(u,v).norm()
作为三角形顶点沿法向量方向的位移,是一个标量。This post has received 1 vote up.其实在 Linux 下可以直接安装 opencv 和 eigen 的,这样可以直接跑在自己的系统下。到完成作业时确认一下用作业框架中的 CMakeLists.txt 能够编译成功就可以。
您好,谢谢耐心解答。
我之前也看到助教对于三角形“向下”的解答的几篇帖子了,当时也去尝试修改了两个参数为负数,编译运行后得到的三角形仍然是“向下”的。
刚才我发现我是基于将
zNear
和zFar
理解为 “n面和f面到相机的距离” 来实现透视投影函数的,在这种理解下,nf 两个参数一定是正数。所以当输入参数改变符号时,函数后半部分 “根据fov计算top” 以及 “计算正交投影中的缩放矩阵” 时对应的参数符号也发生了改变,而在之前我修改完输入参数的符号后并没有继续对应修改函数内部对应部分。这才是我修改输入参数而三角形仍然向下的原因。我想我是由于看到 ppt4 page30 中对坐标的“n”的标注没有加绝对值号(像 ppt5 page6 中同样图片中的那样)才产生了歧义,然后根据自己对函数中参数的理解得到了另一种推导方式而产生了上面的疑惑。现在经过修改,我已经能够用之前的变换矩阵、修改输入参数两种方式分别实现使三角形“向上”,至此我的疑惑已经解决,再次谢谢解答。
最后,如果有别的同学和我有类似的疑惑并且仅修改输入参数符号也不能使三角形“向上”:注意一下当函数输入改变后,在函数后半部分计算的
top
的符号和正交投影的缩放矩阵中的 Z 分量符号是否也发生了改变即可。另外,我认为对于 main.cpp 中的函数
get_projection_matrix
的两个参数zNear
和zFar
的解释,是否应当是“相机到 透视投影的近、远两面 的距离”呢?这样就可以解释代码框架中的这两个参数为什么是正数,要让三角形向上,只要像上面那样修改变换矩阵就够了This post has received 1 vote up. -
AuthorPosts