No.1ベストアンサー
- 回答日時:
以下のサイトはなかなか優れものですね。
非常に参考になるのではと、思います。http://www2.starcat.ne.jp/~fussy/algo/index.htm
本では、
1)GAME PROGRAMMING
に、「テンプレートメタプログラミングを使った高速数値演算」「3角関数の多項式近似」が有ります。
2)GAME PROGRAMMING2
に「不動少数点トリック:IEEE不動書数点でのパーフォマンス向上」が有ります。
3)GAME PROGRAMMING3
に「さらなる3角関数近似」があります
4)高速3Dグラフィックス
に「3次元数学の魔術」があります。
大体、以下のような方針で高速化するのが常套手段?
1)三角関数などは級数展開や、テーブルを使用して近似計算で代用する
2)場合わけをして簡単な計算をなるべく使用する
水平、垂直の場合は簡単に処理する
斜め45度も簡単に、それ以外は通常の計算。。など
3)割り算のかわりに掛け算を使用する。
4)必要な精度がとれるなら固定小数点計算を使用する
5)無駄な方変換を行わない(整数、実数の混在はX)
6)CPUの特性に応じた計算を行う
。。。。
==>
「ゲーム」関係の本に「高速化」の話が良く出ているように感じます。「ゲーム」で検索してみるのも良いかも知れません。
まさに私の探していたサイトです。
直線を両端からかくとか、目から鱗がとれました。
教えていただいた高速化手法も参考にさせていただきます。
確かにリアルタイム性が要求されるゲームプログラムは高速化
技術が必須になりますね。
でも高速化のテクニックは重要なノウハウだからか、なかなか書籍
とかで公表されてないようです。
ちなみに私がよく使う・知っている方法は
・演算結果をテーブルとして持っておく
・ループの中身を展開する
・除算は行わず1/xを2^n倍した整数テーブルとの掛け算+シフトで行う
・水平垂直方向の線分描画は座標計算行わず単純なforループで行う
・Bresenhamによる直線楕円描画アルゴリズム
・double,floatは使わず固定小数点演算で代用する
・無駄なメモリアクセスは削減する。
・ADD計算を減らすため*ptr++;の乱用は避ける(ptr[base_index+offset]で置き換え)
ぐらいです。
型変換は意識したことありませんでしたが、確かに無駄な処理が
増えそうですね。特に理由がなければintで統一していたほうが
いいのでしょうね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(交通機関・地図) 上海浦東国際空港〜龍陽路まで走るリニアモーターカーがあります。18年位前に開通した新交通システムで、 5 2022/05/12 17:47
- 電車・路線・地下鉄 高崎線の特別快速は何のために存在しているのですか? 4 2023/08/08 00:46
- 格安スマホ・SIMフリースマホ 楽天回線エリアなのかパートナーエリアなのか 2 2023/01/14 00:56
- 国産バイク もしかして、京都府北部の高校生の中にも高速道路に乗って高速に乗っている人がいるかも。 4 2023/05/01 13:38
- 画像編集・動画編集・音楽編集 Google Earth Pro 高速道路上空を一定の速度で飛ぶツアー動画の作り方は?? 1 2022/06/01 15:10
- 地図・道路 大津ICから161号線に入り高島市方面へ向かう入口 2 2022/06/22 16:08
- 運転免許・教習所 明日高速教習に行くのですが、下の写真で高速に乗る時は、右折レーンに入っておかないといけないのでしょう 10 2022/09/16 22:08
- 電車・路線・地下鉄 jr西日本はなぜ、山陰本線の最高速度を播但線以下にしないのでしょうか。 5 2023/08/23 14:20
- 地図・道路 関西エリアの高速道路に詳しい方に質問があります 2 2022/10/02 13:56
- 輸入バイク 実は高校生でもバイクで高速道路に乗れるってご存じでしたか。 6 2023/05/01 13:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
排他的論理和 BCC(水平パリテ...
-
骨折リスク評価のFRAXについて...
-
傾いた四角形内の範囲の条件式
-
タクシー料金の問題です
-
C++言語で、レナードジョーン...
-
計算式の文字列を解析して自分...
-
EXCELなどで「返す」という表現
-
べき乗の計算が遅い理由
-
数値計算の高速化 (cos, sin, exp)
-
ExcelのマクロVBA動作を軽くす...
-
prolog計算
-
CCurの引値を文字列にする時と...
-
VBAの再計算が反映されない件に...
-
Excel VBA TREND関数について
-
順列のプログラムについて(VB)
-
C言語初心者。静磁場の計算。台...
-
エクセルで特定のセルのみを任...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
Visual C++でdebugとreleaseで...
-
変化させるセルが変化しない
-
骨折リスク評価のFRAXについて...
-
C# 計算処理中に実行中ウィン...
-
VBAでの勤務時間計算
-
べき乗の計算が遅い理由
-
C言語についてです。 再帰を使...
-
Excel VBAにてFFT
-
数値計算の高速化 (cos, sin, exp)
-
VBとVBAの違い
-
VB6で正確なミリ秒を計測したい...
-
スレッド処理からダイアログを...
-
matlabで計算終了
おすすめ情報