Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 【踩坑】更换贴图时的报错以及解决方案
- This topic has 7 replies, 3 voices, and was last updated 5 years, 7 months ago by
Bear.
-
AuthorPosts
-
-
因为双线性插值要用小贴图,于是我用了spot文件夹里自带的svg矢量图(612×612),但是报错了(见附件图1)。有可能是我哪里实现出问题了,但是暂时没看出来。。
上网搜了一下,姑且是参考了一个大佬的方法然后完美解决了:换格式
原贴图是png格式,小贴图是svg格式,但是同样的代码原贴图就没问题,小贴图就会出问题,所以有这个问题的可以考虑换个文件格式,和原图一样换成png就行(附在附件里,图2,需要的可以直接取走)
然后附件里的第2、3张图是双线性插值的实现效果
This post has received 1 vote up.Attachments:
You must be logged in to view attached files. -
老哥你作业 4 反走样(抗锯齿)准备用啥做?我咋没啥思路。。。(太菜了我)
-
啊啊抱歉前几天太忙了,没看到帖子!
我刚才也正好在做。。但是效果出不来:(
具体见附件吧,虽然边缘有一些地方确实有一点模糊,但是总体上来说模糊的地方还是太少了,大部分地方都是满满的绿色,导致线条很粗,而且锯齿仍然存在,效果很差
我目前的思路是每次对点画颜色之前,找到当前点的周围的四个像素,for(对于周围四个像素中的每个像素p) { 比例 = 当前点到像素p的中心的距离/根号2;//除以根号2是因为当前点到周围任何一个像素中心的距离肯定是小于根号2的,想象一下,四个像素,它们的中心点的连线,最长就是对角线,也就是根号2,当前点肯定是在这四个中心点连线形成的正方形内,所以距离一定会小于这个对角线 像素p的颜色 = 像素p的颜色*比例 + 当前点需写入的颜色*(1-比例);//当前点需写入的颜色也就是绿色 }但是效果也就这样了。。我再思考一下吧。。
ps:还有个疑问,就是贝塞尔曲线计算出的点可能比较密集,或许会出现很多点在同一个像素内部的情况,或者出现某些像素周围聚集了很多曲线上的点的情况,如果按照我这个思路的话,对于每个曲线上的点都要做一次计算,这样是不是会导致很多像素点被重复计算,因此导致了很多地方颜色太深而显得线条很粗且没有什么模糊?
-
This reply was modified 5 years, 7 months ago by
戴皓天.
Attachments:
You must be logged in to view attached files. -
This reply was modified 5 years, 7 months ago by
-
果然是重复计算的问题
因为我在做反走样之前为了增强反走样之前线条的连续性,我把t的增量改小了很多,我改回0.001就好了,就有效果了,但是这个问题暂时没能得到根本解决,还有待思考附件是我改了t增量之后的效果
Attachments:
You must be logged in to view attached files.-
我的问题实际上还是咱们上次讨论的像素位置的问题(我太菜了)
比如我现在得到曲线上的一点 point, 假设该点没有落在像素中心上,那怎么能拿到该点所在像素的中心的位置?(point 的两个值都是 int, 也没法通过 round 之类的方法找中心啊)
-
你可以改一下函数的返回值 point就不是int了
-
-
-
-
-
AuthorPosts
- You must be logged in to reply to this topic.