Forum Replies Created
-
AuthorPosts
-
AtlasParticipantAtlasParticipant
是我写错了。。。我以为*和dot一样,结果*被重载成complex的计算了。
所以,显式的怎样都停不下来,隐式的只能在mass那里加kd*v才能停下来。
我不说了,还是等dalao们了,要是能删帖就好了;;AtlasParticipant我按照你那种方法算隐式内力,kd设成0.1就能停下来。kd更小的时候,最后就会看起来在oscillate。感觉已经是某些控制系统的东西了┑( ̄Д  ̄)┍
AtlasParticipant忘记说了,显式的停不下来。
我是把m->forces += -0.005 * m->velocity;
加在算加速度之前的,你这样加在最后,不是就没用嘛。因为后面还有一句m->forces = Vector2D(0, 0);
。AtlasParticipant抱歉,前面回复太多了,我可能没看懂dalao写的;;
Verlet那里,spring和mass都有用。spring里在根据弹簧长度constraint修正点的位置。mass里在用公式算点的位置。
Euler阻尼的话,我是在mass那里加m->forces += -0.005 * m->velocity;
,就能停下来。This post has received 1 vote down.AtlasParticipanthttp://datagenetics.com/blog/july22018/index.html
我看了这个网站写的verlet,看起来结果还蛮正常的。
1. 遍历所有mass,加速度用重力,算出新的position。
2. 遍历所有string,根据第一步的两边mass的position算出实际长度,然后要让它恢复到rest_length,以此更新两边mass的position(注意是否pinned)。- This reply was modified 4 years, 6 months ago by Atlas.
AtlasParticipant1. recursive_bezier的末尾那句应该是
return recursive_bezier(points, t);
编译的时候没有提醒嘛?
2.windows.at<cv::Vec3b>(p.x, p.y)[1] = 255;
里的x和y好像弄反了- This reply was modified 4 years, 8 months ago by Atlas.
AtlasParticipantbump shader有点类似那个normal shader,但是法线是根据纹理图更新了的。所以它们两个图颜色比较像。
AtlasParticipant抱歉,是我看错了。
谢谢指正~AtlasParticipant可是t.v[i]只是一个Vector3f
╭(°A°`)╮AtlasParticipant1)view_pos是投影前的坐标,也就是真实坐标。t里面的vertex坐标是投影后的。
void rst::rasterizer::draw(std::vector<Triangle *> &Triangle)
里有写view_pos大概是怎么算出来的。
2)你的alpha,beta,gamma好像算错了,之前的代码框架里自带的是(x, y, t.v)
,而且x和y还可以改成x + 0.5和y + 0.5。正常情况下w是1和手算是一样的。
3)应该用view_pos插值。This post has received 1 vote up.AtlasParticipant谢谢!squareNorm是对的,是我插值有错。
AtlasParticipant谢谢!是位置插值错了,改过来就正确了。
AtlasParticipantr和b,t和l是相反数,r+b=0,r-b=2r,这样
你有没有把角度转为弧度制呀,就是算cos那里AtlasParticipant我发现是我是矩阵一个地方写错了= =
我是先根据Lecture 5 Pg.6求t和r,
然后三个矩阵相乘,就是Lecture 4 Pg.24和Pg.32的。
还有一点是,tanf用的是radiance,所以还需要转换一下角度单位。 -
AuthorPosts