mieki256's diary



2024/04/26(金) [n年前の日記]

#1 [python][prog] OpenGLで道路を描画するPythonスクリプトを書いてる。その2

OpenGLを使ってアイソメトリック的な見た目で道路を描画するPythonスクリプトを書いている。

道路は描画できたので、その周辺に、木だか山だかを感じさせる緑色の三角形をランダムに散りばめたいと思ったのだけど、1000枚ぐらい乱数で配置して描画してみたら処理落ちしてしまった…。描画枚数を減らさないと厳しい…。

考えてみたら、道路から遠く離れた場所に配置してしまって無駄になってる場合もありそうだなと気づいた。とりあえず、道路のセグメントデータに対応する形で、道路の脇に配置するようにしつつ、そのフレームで描画してる道路のセグメント数と同じ数だけ三角形を描画するようにしてみたところ処理落ちしない状態になった。

それはさておき。三角形が道路と重なる位置に配置されてしまう時があって、どう解決したらいいものかと…。

ひとまず、道路のセグメントの中心位置と道路幅、三角形の中心位置と三角形の大きさで、2つの円があるものとして衝突判定をして、ぶつかってる三角形は無効にするようにしてみた。

hitcheck_ss.png

これである程度、道路と重なった三角形を排除できたけど、スクリプト実行開始時の初期化処理、衝突判定をするところで、何秒もかかってしまう。三角形を一つ配置するたびに、道路とぶつかってないか、道路のセグメントデータと総当たりで衝突判定してるけど…。セグメントデータが4000以上あるので、配置する三角形の数 x 4000回以上の衝突判定になってしまう。そんなことをしていたら時間がかかってしまうのは当たり前。何かいい手を考えないと…。

以上です。

過去ログ表示

Prev - 2024/04 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project