Angus

Forum Replies Created

Viewing 30 posts - 31 through 60 (of 77 total)
  • Author
    Posts
  • in reply to: 请教老师一个问题,关于重心坐标 #4021 Score: 0
    Angus
    Participant
    23 pts

    你说的是作业3吗?作业3里面t.v是
    Vector4f v[3]
    是四维的

    in reply to: 请教老师一个问题,关于重心坐标 #4013 Score: 2
    Angus
    Participant
    23 pts

    若你让v=t.toVector4()
    这里v[i].W()确实是1
    所以这里应该用t.v[i].w(),这个才是该i点在view space下的z值。
    具体这里为什么要有这样一个公式,你可以参考这个文章中的推导,这里空太小了我写不下:
    https://zhuanlan.zhihu.com/p/45757899

    This post has received 3 votes up and 1 vote down.
    in reply to: [作业3] 光栅化(重心坐标计算插值) #4012 Score: 0
    Angus
    Participant
    23 pts

    其实在本次实验中对attribute的插值被简化了(老师在课上也提到了,透视投影会影响插值,但实验中不要求这么复杂了),应该使用view space的坐标进行插值。
    所以view_pos本来的作用是参与所有attribute的插值的,现在只是在计算interpolated_shadingcoords时需要了。

    in reply to: 作业3更正公告 #3989 Score: 0
    Angus
    Participant
    23 pts

    (2) rasterizer.cpp 中 v = t.toVector4()
    助教,关于这一条,我测试了一下
    auto v = t.toVector4()
    v[i].w() 恒为1,并不是所需的 view space 的深度值
    这里是不是得用t.v[i].w()才可?

    Angus
    Participant
    23 pts

    假想你下巴搭在木桌上看桌子,想象自己眼前有很多均等大小的像素格子,是下方(近处)的像素格子包含的桌面面积大还是上方(远处)像素格子包含的桌面面积大?

    This post has received 1 vote down.
    in reply to: 关于透视矩阵的参数 #3879 Score: 0
    Angus
    Participant
    23 pts
    in reply to: 关于透视矩阵的参数 #3878 Score: 0
    Angus
    Participant
    23 pts

    这里应该不是。代码里的就是实际的n,f值,可以设置为负数(参考作业二中助教补充的修正为右手坐标系的一系列操作)。

    in reply to: 请教老师一个问题,关于重心坐标 #3759 Score: 2
    Angus
    Participant
    23 pts

    我觉得老师只是说可以用面积比的形式理解重心坐标,真正计算alpha, beta, 和gamma还是用公式吧?

    This post has received 2 votes up.
    in reply to: 颜色引用问题 #3653 Score: 0
    Angus
    Participant
    23 pts

    Color的C要大写。小驼峰命名法。

    Angus
    Participant
    23 pts

    感谢同学补充,不过你所说的恰巧是我一直纠结的点。

    我个人认为老师在PPT和作业中提到的「super-sampling 处理 Anti-aliasing」不是MSAA,而是SSAA。

    你的资料也显示了,MSAA有着与老师在PPT中提到的算法流程有着些许不同。

    所以本次作业我按照老师PPT中的算法流程和作业中的要求实现的是SSAA,需要4xdepth buffer和4xcolor buffer,且每个像素做4次着色操作(getcolor())。

    如果要实现的是MSAA的话,我觉得那就得另开一贴再议了。

    MSAA确实如同学所说,只需要做一次着色操作,但是我对您所说的不需要为子样本提供单独的颜色缓存和深度缓存这一点存疑,这与我之前的认知相悖。您可以继续展开说一下是如何实现不把背景色(比如说红色)引入两个三角形的相交边缘的吗?

    This post has received 1 vote up.
    Angus
    Participant
    23 pts

    其实按照老师第八节课中(35:14处)的说法,除了要为每个子样本维护一个depth buffer外,也要维护一个color buffer,这样就不会有黑线。背景色换为红色后,也不会有红线。

    不为子样本维护color buffer的话,无论如何都会把前一个渲染的三角形的边缘颜色引入。

    这里只是因为场景非常简单,只有两个三角形,没有把问题凸显出来,且如果幸运的话,渲染顺序还会隐藏这个问题。

    • This reply was modified 4 years, 8 months ago by Angus.
    Angus
    Participant
    23 pts

    如果我没推错的话,假设你前三个采样点都采样到了颜色,但如果第四个采样点没有通过insideTriangle(),就不会触发setColor()方法,这是不是不太对呢?

    Angus
    Participant
    23 pts

    我这句话的意思是,因为在这次实验中只有两个三角形,且背景色为黑色(0 ,0, 0),所以在对两个三角形边缘进行颜色混合时,混入首先渲染的三角形边缘的(0 ,0, 0)并不会对结果造成影响。可以试试如果背景色为红色(1, 0, 0),边缘会不会混入背景的红色,来验证一下自己算法的正确性。

    Angus
    Participant
    23 pts

    感谢总结。还想问一下同学你的颜色设定方法,以及最后的边缘是(蓝+绿)混合还是(蓝+绿+黑)混合?

    in reply to: 一个向量组的定义问题 #3500 Score: 0
    Angus
    Participant
    23 pts

    四维向量的表示齐次坐标(x,y,z,w)。你可以再听下老师关于其次坐标的讲解。

    in reply to: 作业2提高问题求助 #3497 Score: 0
    Angus
    Participant
    23 pts

    如果你只需要一个4倍大的buffer,即如果你只需要维护样本的color buffer就可以实现的话,那当我上面的话全都没说吧😥。
    我还是继续相信闫老师第八节课里说的话👌。

    in reply to: 作业2提高问题求助 #3496 Score: 0
    Angus
    Participant
    23 pts

    你使用这个四倍大小的像素颜色值的samplelist后,还需要一个四倍大小的子样本深度buffer吗?

    in reply to: 作业2提高问题求助 #3482 Score: 0
    Angus
    Participant
    23 pts

    回复见楼下。

    in reply to: 作业2提高问题求助 #3481 Score: 1
    Angus
    Participant
    23 pts

    Supersampling Antialiasing本身就是要为每一个子样本维护一个 color buffer和 depth buffer,并且每个子采样点都会做深度测试。

    具体可以参考文刀秋二前辈的知乎回答:
    https://www.zhihu.com/search?type=content&q=SSAA

    以及闫老师在课程8的35:14处也说了这么一句话:

    「大家已经做了这次作业,就应该已经知道,我们会维护每一个fragment或者说sample,对应的深度和颜色,最后再把它拼成一个图,就不会拼出三角形的黑边。」

    This post has received 1 vote up.
    • This reply was modified 4 years, 8 months ago by Angus.
    in reply to: 作业一提高部分 #3467 Score: -1
    Angus
    Participant
    23 pts

    三角形是否在相机的视锥体内?

    This post has received 1 vote down.
    in reply to: 作业2提高问题求助 #3461 Score: 1
    Angus
    Participant
    23 pts

    没代码的话我还真不好猜😄
    你可以试试分别把四个样本的sample_frame_buff当作最终值,用setcolor()赋给像素,看看单个样本是否出了问题👌

    This post has received 1 vote up.
    in reply to: 作业2提高问题求助 #3458 Score: 1
    Angus
    Participant
    23 pts

    不知道你的outcolor是怎么写的。不过你既然也维护了一个四倍大小的sample_frame_buf和sample_depth_buf的话,我可以跟你说说我的思路,不保证对,但我最后的效果是没有问题的,然后你对照一下看看你的问题出在哪。

    在方法内,我首先对四个sample分别进行采样,然后记录在sample_frame_buf和sample_depth_buf内。

    如果有多于一个sample采集到有效样本的话(至少有一个sample在三角形内)
    就更新这个像素的
    frame_buf = (sample_frame_buf(index)+sample_frame_buf(index+1)+sample_frame_buf(index+2)+sample_frame_buf(index+3)) / 4

    This post has received 1 vote up.
    in reply to: 提高部分的解决方案 – 答案就在作业文档中 #3421 Score: 1
    Angus
    Participant
    23 pts

    增加一个sample_depth_buf和一个sample_frame_buf试一下?都是四倍大

    This post has received 1 vote up.
    in reply to: 关于作业2,请问getcolor函数在哪里? #3415 Score: 1
    Angus
    Participant
    23 pts

    在Triangle的头文件中

    This post has received 1 vote up.
    in reply to: 关于作业 2 深度测试结果不显示的问题 #3395 Score: 0
    Angus
    Participant
    23 pts

    插个嘴,请问下左手系和右手系的投影矩阵具体区别在哪一步?

    in reply to: 三角形是否在相机的视锥体内? #3386 Score: 0
    Angus
    Participant
    23 pts

    也就是说经过model&view transformation后的位于z负半轴三角形,在施加projection transformation后,其实是做了不符合预期的(视锥体外)变换,但恰好还落在[+-x,+-y]内,且虽然在相机“后面”,但由于没有对视锥体的近远平面进行裁切,仍然看得到三角形?

    in reply to: Hw2的疑问 #3378 Score: 0
    Angus
    Participant
    23 pts

    +1
    我也好奇哪一部分代码涉及了z轴的反转

    in reply to: 课件PDF能否在课前提前给出 #3377 Score: 1
    Angus
    Participant
    23 pts

    对比老师课上用的课件和课下放出的课件,我觉得老师会根据进度动态调整每节课的课件内容后再放出,如果提前放出容易造成混乱,例如「本节课要用到上节课的ppt」。
    我一般是课下等课件pdf放出后,对照b站视频再次1.5倍速听课+在pdf上记笔记,也有新收获。

    This post has received 1 vote up.
    in reply to: 提高部分测试问题 #3281 Score: 0
    Angus
    Participant
    23 pts

    画一个全黑的深度值很高的大三角形(背景)是不是就好了

    in reply to: 作业2三角形朝向问题 #3225 Score: 0
    Angus
    Participant
    23 pts
Viewing 30 posts - 31 through 60 (of 77 total)