KON
@KON

KON
@KON
Member
Joined August 10, 2023
Last Active 716 days ago
- Post #19
-
不考试 实验占 70%
Post #7 -
Post #2 ❤️ 1 like -
感谢学长 🥳
Post #3 -
😂找到问题了,就是助教 @roland 提到的返回的法线问题,我在修改了之后得到正确结果了,谢谢助教
Post #8 -
我使用助教 @greyishsong 提供的方法,发现
generate_ray()应该是没有问题的。
但是我在naive_intersect()中计算得到的beta和gamma都不在 0 - 1 之间,一次相交都没有发生
传递的参数是
naive_intersect(ray, object->mesh, object->model())在
naive_intersect()中我先进行如下变换std::array<size_t, 3> face = mesh.face(i); Vector3f a = mesh.vertex(face[0]); a = (model * Vector4f(a.x(), a.y(), a.z(), 1.0f)).head(3);计算过程如下
Vector3f S1 = (ray.direction).cross(c - a); Vector3f S2 = (ray.origin - a).cross(b - a); float t = S2.dot(c - a) / S1.dot(b - a); float beta = S1.dot(ray.origin - a) / S1.dot(b - a); float gamma = S2.dot(ray.direction) / S1.dot(b - a);请问可能是什么地方的问题呢 😭
Post #6 -
返回值我使用的就是原来的这个
return {camera.position, (world_pos - camera.position).normalized()};主要是因为我发现函数
naive_intersect()中result.t值一直没有更新,渲染的进度条进行的非常快,所以我怀疑是光线的问题,那么就应该是naive_intersect()这里的问题了,但是我并没有发现错误在哪里 😭
在
trace()中给naive_intersect()传递的参数如下
Post #3 -
找到问题了,应该是
generate_ray()函数存在错误 🥲Post #3 -
请问
generate_ray()函数是像文档里那样写吗,我在渲染时会出现进度条暂停然后自动退出的情况。即使渲染完成,图片里也没有模型出现。
Post #5 -
好的 谢谢助教老师
Post #3 -

🥲我把 draw 函数里的 rasterize_triangle 注释掉就不会闪退Post #2