Fortran Coder

查看: 10551|回复: 6
打印 上一主题 下一主题

[原创] 用fortran做了一个地形渲染组件,都快疯了

[复制链接]

8

帖子

2

主题

0

精华

入门

F 币
63 元
贡献
30 点
跳转到指定楼层
楼主
发表于 2019-7-4 01:06:12 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
            本来用python做的,不到两天就搞定了,包括读取地形数据,再写入图片,这些完全从头开始。
但是,运行让人崩溃i,渲染一个平方度区域,要2100秒,也就是40多分钟。要是配色方案固定了也无所谓,几天几夜就出来了。
实在不能忍,那就用编译语言吧。20几年前学过fortran,77语法,老太太教的。二十几年完全没碰。那就怀旧一下。弄了个simply fortran,核心是gcc。然后从头开始学起。
以为很简单,哪知道,fortran语法超级变态。int-2/int-4互传都不让过。
做颜色变化率的时候,悄然被截零了,幸好,还记得老师说过,整数很容易溢出或者截0。用实数验证了。因为调用非常频繁,还是决定用整数,改变计算顺序。k=a/b改成k=10000/b*a,a<b,都是int。后续再k/10000。颜色范围是0~255,中间计算范围很容易确定。
到今天下午,终于搞通了。只是一个组件dll,两头都在python。速度在15~30秒。性能一下子提升100倍。
纯python,2100秒
fortran+py,20秒!
读文件,写文件,都是python干的,实在没能力分析二进制文件格式再读写。

手头没有C++编译器,不知道C++能干到多少秒。
1平方度=3600x3600点,13百万的巨大矩阵,fortran10秒钟就搞定了。当然纯Fortran做起来很难。

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

8

帖子

2

主题

0

精华

入门

F 币
63 元
贡献
30 点
沙发
 楼主| 发表于 2019-7-4 12:01:21 | 显示全部楼层
花了好几天,还是很值得的。
选一个中国地图,只要半天就可以了,要是用python,时间*100。
以后就用fortran做核心过程。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-10 09:56

Powered by Tencent X3.4

© 2013-2024 Tencent

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