游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3519|回复: 10

用有限元技术模拟柔体,遭遇浮点陷阱

[复制链接]

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
发表于 2008-4-10 19:36:00 | 显示全部楼层 |阅读模式
每帧都要大量的浮点运算,但是经过检查并没有任何的除以零操作。用以下代码

int i = _controlfp(0,0);
i &= ~(EM_ZERODIVIDE|EM_OVERFLOW|EM_INVALID);
_controlfp( i, MCW_EM );

检测的时候就出来了浮点陷阱的异常。
这个浮点陷阱是由什么造成的,怎么解决??

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-4-10 23:59:00 | 显示全部楼层

Re:用有限元技术模拟柔体,遭遇浮点陷阱

对有限元技术有点兴趣。
不过似乎它的编码还是人工硬编码。

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
 楼主| 发表于 2008-4-11 10:08:00 | 显示全部楼层

Re: Re:用有限元技术模拟柔体,遭遇浮点陷阱

instemast: Re:用有限元技术模拟柔体,遭遇浮点陷阱

对有限元技术有点兴趣。
不过似乎它的编码还是人工硬编码。


兄台有什么好想法?分享下啊

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-4-11 15:42:00 | 显示全部楼层

Re: Re: Re:用有限元技术模拟柔体,遭遇浮点陷阱

penghao_xmu: Re: Re:用有限元技术模拟柔体,遭遇浮点陷阱



兄台有什么好想法?分享下啊


我只不过在书店翻了翻有限元技术的书,
但发现他上面貌似没有我需要的东西,
(思想我喜欢,但编码仍然是硬编码)
然后就不看了。。。

貌似浮点异常只是C++代码自身的问题,
和什么“有限元”没有太大关系。是不是这样呢?

int i = _controlfp(0,0);
i &= ~(EM_ZERODIVIDE|EM_OVERFLOW|EM_INVALID);
_controlfp( i, MCW_EM );

这代码是什么??

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
 楼主| 发表于 2008-4-11 17:49:00 | 显示全部楼层

Re: Re: Re: Re:用有限元技术模拟柔体,遭遇浮点陷阱

我只不过在书店翻了翻有限元技术的书,
但发现他上面貌似没有我需要的东西,
(思想我喜欢,但编码仍...


《游戏编程精粹3》里给出的浮点异常的检测代码……
意思应该是取出一个浮点异常,检测是否是指定的异常类型,然后再放回去
但是并没有进行异常处理……
那么,一般哪些情况容易产生浮点异常?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-4-12 00:22:00 | 显示全部楼层

Re:用有限元技术模拟柔体,遭遇浮点陷阱

需要注意无穷大,0:0 型不定式,
∞:∞ 型不定式。

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
 楼主| 发表于 2008-4-12 20:06:00 | 显示全部楼层

Re:用有限元技术模拟柔体,遭遇浮点陷阱

看过了instemast的几个帖子,越来越觉得instemast兄深不可测了。虽然我的问题还是没解决
敢问兄台日常工作都是做些什么的?在哪工作?

0

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2008-4-12 20:15:00 | 显示全部楼层

Re:用有限元技术模拟柔体,遭遇浮点陷阱

给人的感觉是开个马甲吹捧自己..

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-4-13 12:30:00 | 显示全部楼层

Re:用有限元技术模拟柔体,遭遇浮点陷阱

IEEE 754。NaN一般都是传递的,INF仅对部分操作传递。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-4-13 22:03:00 | 显示全部楼层

Re: Re:用有限元技术模拟柔体,遭遇浮点陷阱

penghao_xmu: Re:用有限元技术模拟柔体,遭遇浮点陷阱

看过了instemast的几个帖子,越来越觉得instemast兄深不可测了。虽然我的问题还是没解决
敢问兄台日常工作都是做些什么的?在哪工作?


实在不好意思,前天去书店又翻了ANSYS的书,发现之前理解的有出入。
似乎是把一个“连续的”系统给“量子化”进行分析。


另外“但发现他上面貌似没有我需要的东西”这里我需要道歉:

方程式之可以用来 静态 求解,而不能模拟具有3个以上耦合元素的系统的演化。

早就看书上说“牛顿的理论连3体问题都不能很好结决”
我不听,以为可以,终于栽了跟头。。。

f( x,y,z )==0

如果 x 发生变化, 变化量 dx。其余变化量 dy==dz==0。
我以为,系统接下来的状态是。(同步我当然知道了-__-)
x2 = Fx(y1+0, z1+0)
y2 = Fy(x1+dx, z1+0)
z2 = Fz(x1+dx, y1+0)
实验结果发现,系统的新状态不满足 f( x2,y2,z2 )==0。

实际上是不对的,因为:
如果只有x变化,即下一个 x2 可以确定为 x1+dx
但是,f( x1+dx, y ?, z ? )==0,有2个未知数,解不出来。

所以说方程未知数3个以上的时候,这种“方程系统模型”就夭折了。

我将另辟蹊径。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 20:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表