Forum Replies Created
-
AuthorPosts
-
直接仿真过程的截图就可以
请参考:https://github.com/glfw/glfw/issues/833
这个代码里面,从固定粒子开始求约束,所以直接Gauss-Seidel方法解一遍就可以稳定了。
- This reply was modified 4 years, 6 months ago by 禹鹏(助教).
两种解决方法:
1. 你发的图片里有解决方法,就是命令之后加上”–fix-missing”
2. 更换安装源,比如清华,阿里的都可以。This post has received 1 vote up.直接输入:
sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev
直接输入:
sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev
This post has received 1 vote up.不用管
如果想要解决,可以参考:https://stackoverflow.com/questions/22745076/libpng-warning-iccp-known-incorrect-srgb-profile- This reply was modified 4 years, 7 months ago by 禹鹏(助教).
返回的有直接光照+间接光照,直接光照不一定为0啊.
生成随机数测试
期望就是sum[(0-N)次弹射概率和次数的乘积]。
那N次停止的概率就是:前面(N-1)次都继续发射光线的概率(p^(N-1)和第N次停止发射光线概率(1-p)
所以N次停止的概率就是:(1-p) * p^(N-1)
那么N次停止的期望:N*(1-p)*p^(N-1);那么光线弹射停止的期望就是 sum_{N=0}^{N=\infty } {N*(1-p)*p^(N-1)}
1. 位置和向量的概念不一样的。方向这个问题注意正负号。
2. sampleLight你看一下定义,第一个参数是个Intersection,是这个函数算出来的。也就是光源上采样点的信息。哦哦,确实是这样。是我理解错了。
This post has received 1 vote up.L_i 和 eval(wo,ws,N) 是 element-wise product。向量的每个元素分别相乘。
你看一下你的normal有没有归一化
因为是递归算法,所以我们的光线可能弹射很多次,除了俄罗斯轮盘赌的方法来停止光线弹射外,我们也设置了最大的弹射此处,也就是depth。
This post has received 1 vote down.你光源的origin沿着direction稍微移动一个微小位置不就可以了。
你的代码里面错误太多了。
比如wo这个入射方向不就是ray.direction么?
关于你的2,课堂已经讲过了,如果是直接光照的话,不要从p点采样出射光线的方向,而是看哪些光源能照到这里。
具体做法就是:sampleLight实在光源上采样一个发光点,然后你从p点到发光点判断有没有遮挡。This post has received 1 vote up.- This reply was modified 4 years, 7 months ago by 禹鹏(助教).
你的意思是两个Box同时存储重叠部分的三角形么?
这就是咱们课堂上讲的其中一种方法:kd-tree。但这种方法的缺点就是在构建kd-tree的时候还要计算box和三角形的相交,反而有点麻烦。两种可能吧。
1. Bounding Box问题
2. 深度测试问题,记得更新depth buffer平行的时候我们只要判断光线是不是在pair slab中间。如果不是那肯定就不和box相交。否则必相交。
This post has received 1 vote up.如果是三角网格的SDF生成,有两大类方法。一个是基于波动方程,一个是距离变换法(Distance Transform)。
波动方程可以用fast marching method求解,参考:A fast marching level set method for monotonically advancing fronts
距离变换法有精确求解和估计解法,可以搜索Meijster distance transform method。其实.obj格式都是一样的,不用Meshlab也可以。
为什么会有段错误,你有没有debug一下看问题出在哪里呢?
再下载一个其他的.obj模型,还会是同样问题么?给你推荐一个链接
http://iquilezles.org/www/articles/distfunctions/distfunctions.htmThis post has received 1 vote up.你先GDB调试一下,看在哪儿出错我们才好给你建议啊。
推荐用backtrace把函数调用栈打印出来,贴出来。shadingcoords
是由view_pos插值得到,也就是物体表面的点在相机坐标系的位置。他们会在shader中被用到,来计算光照等信息。This post has received 1 vote up.请仔细阅读代码,你说的插值计算颜色的方法是正确的,就是由三角形三个顶点的颜色和重心坐标得到三角形内任一点的颜色。
至于如何获取颜色,你有了一个三角形对象
triangle t
之后,它的属性还是public的,你获取应该是很容易的。- This reply was modified 4 years, 8 months ago by 禹鹏(助教).
-
AuthorPosts