Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业2中遍历像素问题 This topic has 7 replies, 4 voices, and was last updated 4 years, 7 months ago by ma. Viewing 2 reply threads Author Posts 2020年3月8日 at 下午2:47 #3530 Score: 0 SongsongParticipant Karma: 4 pts 编程小白,老师讲的都能明白,具体的一些实现都已实现,但是到了目前需要遍历像素点比对的地方卡住,不知道像素存在哪里又该怎么调用呢。。 2020年3月8日 at 下午4:17 #3546 Score: 0 BearParticipant Karma: -11 pt 在 TODO 的地方补充代码就好了呀。。。 2020年3月8日 at 下午4:25 #3551 Score: 0 SongsongParticipant Karma: 4 pts 主要是不知道怎么循环调用像素这个概念。。 2020年3月8日 at 下午4:36 #3555 Score: 0 戴皓天Participant Karma: 9 pts 像素存在auto v = t.toVector4();里 这个v存了三个vector4f,分别对应每个三角形的三个点,举个例子(v[0])[0]就是读取存在v里的第一个点的x坐标 frame_buf[]存的是颜色 depth_buf[]存的是深度 给get_index(int x, int y)传像素坐标可以获得在frame_buf、depth_buf中对应的数组下标 循环调用的话就循环v里的三个点呗,每次传来的都是三个点,顺序的话是按照main.cpp里面的 std::vector<Eigen::Vector3f> pos { ... }; 的顺序,按顺序每三个点放在一个三角形里 This reply was modified 4 years, 8 months ago by 戴皓天. This reply was modified 4 years, 8 months ago by 戴皓天. This reply was modified 4 years, 8 months ago by 戴皓天. 2020年3月8日 at 下午4:48 #3561 Score: 0 SongsongParticipant Karma: 4 pts 感谢,我理解是区域内(min到max)每一个像素来比较,对于其中的步长该如何确定呢。对于这块代码还是不太理解 2020年3月8日 at 下午4:58 #3564 Score: 0 戴皓天Participant Karma: 9 pts 步长其实就是单位1,点(x,y,z)在屏幕上的坐标就是(x,y),你求出bound box不就是拿x和y的最大最小来取的吗,这个x、y其实就是一个像素左下角的位置,单位就是单位1,1×1就是一个像素,(x+0.5,y+0.5)就是一个像素中心的位置。 这样的话你便利就直接两层循环,分别取x+i,y+j就是bound box里各个像素的左下角位置了 2020年3月8日 at 下午5:00 #3569 Score: 0 SongsongParticipant Karma: 4 pts 谢谢大佬了!这就去试试 2020年3月27日 at 下午11:40 #4840 Score: 0 maParticipant 你好,打扰一下,想接着这个问题请教。 我看到rasterizer.cpp 文件最后有一个rst::rasterizer::get_intex函数,这个似乎是作业中提到的整数索引。确定像素是否应该按这个索引?这个最后返回的值你知道是什么吗?该如何用索引建立和像素的关系? Author Posts Viewing 2 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In