Forum Replies Created
-
AuthorPosts
-
嗯嗯,是的,其实我也没有试过,我是在VS上用的hhh。不过我在谷歌上看的教程VSCode是配置一个jason文件来表示。
咦,其实这个问题我觉得挺有意思的,为什么normal shader要进行这样的操作。我看wikipedia上面的normal mapping,好像不是这样做的。
https://en.wikipedia.org/wiki/Normal_mapping[t,b,n]是局部坐标系的坐标轴的坐标,所以左乘TBN的转置矩阵的作用是将世界坐标系转换到法向量的局部坐标系。
而TBN矩阵是TBN的转置矩阵的逆矩阵,作用是将局部坐标系的坐标转换为世界坐标系下的坐标。链接包含目录,库目录配置了吗?
在texture.hpp,中getColor时,先约束一下uv在0~1之间试试。
This post has received 3 votes up.[t,b,n]是局部坐标系的坐标轴的坐标,这个是求了将全局坐标到局部坐标的逆矩阵。
如果非单位/不正交应该是浮点数的计算造成的精度误差。关于图片的下标,比如纹理坐标在从2D的image读取色彩的时候可能会出问题。
大概率数组下标越界,查查看哪里抛的段错误
多谢回复,因为看到很多个po代码的同学都这样做的,助教也没有说有错,所以就问了一下。
我这里rock是可以跑的,段错误很可能是数组下标越界之类的。
if (argc == 3 && std::string(argv[2]) == “texture”)
这个里面的texture_path也要改这个错误,应该是opencv读取失败的报错,看看路径下是否有图?可以show一下看看是否读取成功。
请教一下大佬,为什么环境光要加两次?
还有一个可能是作业四,查询坐标求差分的时候,+ 1/w;1/h之后会超过1.0
在rasterize_triangle中,进行了v = t.toVector4();修改为了齐次坐标
助教老师好,我想请教一下,为什么环境光需要对每个光源都增加一次呢?
原来是这样,感谢!
还是没有搞明白,跪求老师,助教老师和各位大佬解惑,十分感谢!
array()也很方便. 官方文档看看接口,返回值和例子应该还是比较清晰的。
我发现,楼主的假设,“Mipmap的level就更高,也就是在纹理图中的范围越小”,这个不太对吧,老师说了原话吗?
有一个前提条件,在Mipmap中,每一个level的map看到的内容大小是一样的,只是分辨率不一样。
level高->分辨率越低->在最初始的纹理图的范围会越大。咦,作业说明的pdf里面的参考图是这样的。
不客气啦,共同进步,加油!
看起来像是图片没有载入成功?看看一下路径下是否有图片,图片名称正确?
blinn phong的结果没有加入纹理,应该就是只有黑白两种颜色?
这个我也遇到了,我输出了插值后的纹理坐标,发现超出了[0,1],可能是因为精度误差。解决方法是夹到[0,1]内就行了。
- This reply was modified 4 years, 8 months ago by sublimation. Reason: typo
关于第二个问题,大佬有什么想法吗?
不管关于这两次看起来不太影响,因为.w()都是等于1,是否乘1.0/(alpha / v[0].w() + beta / v[1].w() + gamma / v[2].w())。没有什么区别。这样嘛?看了回放里面,老师好像也是说要这样算。
因为之前我看到很多资料直接就用面积定义,所以之前一直直接用海伦公式计算面积算的。
和是否为1,用来判断是否在三角形内部。现在才知道原来和为1是定义本身,用来限制四点共面。。在计算xn的时候不应该*2
inside_triangle参数是int,但是传入的是float
参考:
-
AuthorPosts