[過去ログ] 【軽量】godot engine【無料】 part3 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
768: 名前は開発中のものです。 [sage] 2024/07/01(月) 13:30:03.28 ID:bpyOLnVe(2/6) AAS
バブルソートでいいんじゃね、N=10000とかでやれば

あとはGDExtentionと.NET側をfloatにしちゃうとか
物理演算ライブラリとか作ってないんだし精度いらないでしょ
769: 名前は開発中のものです。 [sage] 2024/07/01(月) 14:10:50.39 ID:3HKv0EDG(5/9) AAS
画像リンク

floatだと負荷にならないみたい 出来れば5〜10秒くらい掛かって欲しい
ソースコードはコピペなんでこれに何の意味があるのかはよく分からない
770: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:09:53.43 ID:bpyOLnVe(3/6) AAS
円周率の近似式(グレゴリー・ライプニッツ級数)じゃね
コンパイラが最適化しちゃうからこの手の単純計算のループはほぼ意味ない計測になっちゃうと思う

実際のデバッグ画面でFPSの計測ができるレベルのベンチ作った方がいいと思うぞ
例えば、1億個のCharacterBody2Dインスタンスを重力で落下させるとかそういうの
それをGDExtension/.NET/GDScriptで比較してみればいい
771: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:20:12.05 ID:VOEpRWLF(1) AAS
物理は物理で専用のエンジン使ってるとかだから比較する意味ないんじゃない?
772: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:40:49.90 ID:bpyOLnVe(4/6) AAS
うん、だから物理サーバー使わなければいいんじゃないかな
773: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:49:11.98 ID:3HKv0EDG(6/9) AAS
すげーな、ライプニッツの公式って書いてあった
コンパイラが賢くて空ループとか消しちゃうとかは風の噂に聞いた事があるような気がする
C#→GDScriptは出来るが流石にC++は忘れすぎててC++⇔C#が無理で困る

FPSを計るのは何か引っかかるんで手詰まりで諦めたらそれでいくようにしてみるよ
あとは出来る範囲で色々試してみる
そしてGDでbyteコードが使えないのでまた1つ没になった
774: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:53:19.58 ID:bpyOLnVe(5/6) AAS
がんばーれー、よかったら結果もコミュニティで共有してぇー(懇願)
775: 名前は開発中のものです。 [sage] 2024/07/01(月) 18:14:31.27 ID:Mr+4kRr6(1/3) AAS
最適化が効かないやつなら2chからの伝統のトリップキー探索がよいのでは
単なるハッシュ総当りですが
776
(1): 名前は開発中のものです。 [sage] 2024/07/01(月) 18:27:09.99 ID:3HKv0EDG(7/9) AAS
何か探してたらコンパイラの最適化を邪魔するらしい謎の変態C++があったのでやってみた
外部リンク:verifiedby.me

結果はご覧の有様だよ
画像リンク

1分くらい固まるから何かと思ったよorz どうしてこうなった
777: 名前は開発中のものです。 [sage] 2024/07/01(月) 18:39:53.63 ID:3HKv0EDG(8/9) AAS
GDExtention C++はなんでか知らんけど_readyに入れてもいきなりエディタ起動と同時に動き出すので
Runボタン押さなくても勝手に始まってしまう
なのでエディタ起動の負荷が乗っかってるのでちゃんと測れない点は考慮してね

キー入力で呼び出せるように出来ればいいんだけど全然やり方分かりません
778
(1): 名前は開発中のものです。 [sage] 2024/07/01(月) 18:56:09.47 ID:Mr+4kRr6(2/3) AAS
>>776
かなり差がつきますね
やはりガチ勢はスクリプトだけだと限界が来るのか
779: 名前は開発中のものです。 [sage] 2024/07/01(月) 19:59:29.83 ID:3HKv0EDG(9/9) AAS
>>778
逆にいざという時は最速クラスの切り札があると考えればよいのではないかと
前にどなたかが話してたけどね

Unityも以前はUnityScriptというJavaScriptもどきだったものが後からC#が登場して入れ替わったけど
処理が遅い所はC++でプラグイン作ったりするのは一緒みたいだし必要に応じて織り交ぜていったらいいと思うだよ
780: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:20:18.64 ID:Eif3//6J(1) AAS
処理速度が必要な部分のみC++を使うで良いが
最初から必要であると判っているならC++ネイティブなエンジンも良いと思う
自分のやってる事ではそんな状況にはならないがその時は国産のSiv3Dを試したい
781: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:36:52.91 ID:bpyOLnVe(6/6) AAS
いいね! 25億回くらいループ回すときはGDExtensionでやろうっと
782: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:57:06.09 ID:Mr+4kRr6(3/3) AAS
そこそこ簡単な処理だけど膨大な数をこなすのはゲームでは割とありがちなので、ピンポイント最適化すると気分良さそうですね
783: 名前は開発中のものです。 [sage] 2024/07/01(月) 21:36:11.36 ID:Dj6YjZN7(1) AAS
こういう人たちのおかげで自分でもエンジン快適に使えてるんだなあって
いつもありがとね
784: 名前は開発中のものです。 [sage] 2024/07/02(火) 07:51:54.63 ID:KWyZHQ68(1/4) AAS
GDscriptのfloatってgodot4.xでは64bit精度(C++での倍精度double相当)ではなかったですか?
オンラインマニュアル読むと内部的には64bit精度みたいに読めるのですけれど(解釈間違い?)
precisionオプション指定でgodot engineをリビルドする必要があるとか
32ビットARMやWebAssemblyやGPU関係で32ビット精度がデフォルトとか検索するほど新旧情報が錯綜してしまいます
785
(1): 名前は開発中のものです。 [sage] 2024/07/02(火) 09:05:04.55 ID:b/scUpaU(1/4) AAS
外部リンク:godot-jp.github.io
それはintだよ つまりintはlong相当(64bit)、でもfloatは32bitでdoubleじゃない
floatは有効桁数が約7桁、doubleは有効桁数が約15〜16桁 桁違うからすぐわかるよ
786
(2): 名前は開発中のものです。 [sage] 2024/07/02(火) 09:18:30.05 ID:b/scUpaU(2/4) AAS
いや間違いだった。doubleって書いてあった
外部リンク[html]:docs.godotengine.org
ただしデフォでは32bitでprecision=doubleオプションを有効にしたときdoubleになると書いてある
787: 名前は開発中のものです。 [sage] 2024/07/02(火) 09:30:57.57 ID:KWyZHQ68(2/4) AAS
>>785
ありがとうございます
そうなんですよね
あちらこちらで書かれている内容が交錯していて

外部リンク[html]:docs.godotengine.org

>float
>Stores real numbers, including decimals, using floating-point values. It is stored as a 64-bit value, equivalent to double in C++.
>Note: Currently, data structures such as Vector2, Vector3, and PackedFloat32Array store 32-bit single-precision float values.

godot engine docs のほうでは "stored as a 64-bit value, equivalent to double in C++" と書かれていたりしますので…😥
Vector2/3の各要素の方はリビルドしないと32bit精度なのは分かるのですが…
788: 名前は開発中のものです。 [sage] 2024/07/02(火) 09:44:30.59 ID:KWyZHQ68(3/4) AAS
>>786
はい
GDscript(4.x)のfloat自体は内部64bit精度でも
ただVector2/3構造体をはじめ各種内部関数がC++のfloatがデフォルトになっていると
GDscriptのfloatが64bit精度でもgodot engineの各所で暗黙の型変換によって32bit精度に落とされてしまうので
precision=doubleあたりでリビルドしないとまともに使えないかもしれない感じでしょうか
789: 名前は開発中のものです。 [sage] 2024/07/02(火) 10:09:08.37 ID:SYGJ/B8W(1) AAS
型は誤解なく明確に指定するサフィックスを大原則にしてもらえたらな
文字数増やす奴は絶対コロ助は当然いるし、省略時オプションさえあればいいだろとか異論噴出するのは分かってるけど
うっかり間違えた時のバグによる損失を無視できるほど省略記法にメリットあると思えなくてさ
みんなよく管理できてるよね設計上手兄貴しかいないのかな
790
(1): 名前は開発中のものです。 [sage] 2024/07/02(火) 10:25:43.85 ID:b/scUpaU(3/4) AAS
>>786
外部リンク:godotengine.org
Note: This change has already been merged into the engine, however it is only available in the “doubles” version of the engine, so to take advantage of it, you will still have to build the engine yourself using the compile flag precision=double (formerly float=64).
ってなってるから自分でオプションを付けてビルドしてくれって事みたいだよ
shaderもdoubleにしないと効果ないみたいなので最初からdoubleがデフォだと無駄が多い気がする
791: 名前は開発中のものです。 [sage] 2024/07/02(火) 10:53:31.94 ID:b/scUpaU(4/4) AAS
外部リンク[xml]:github.com
正しい情報が迷子で分かり辛過ぎるな

floatは64bit倍精度だが、メソッドやプロパティ/Vector2/3ではデフォが32bitで
precision=doubleを使うと全部64bitになるらしい事が書いてある
デフォは計算するとほぼ確実に32bitになるんじゃないのかな?

開発者やマニュアル書いてる人も大混乱してるとかそういうオチのような気がしないでも…
792: 名前は開発中のものです。 [sage] 2024/07/02(火) 11:21:53.81 ID:KWyZHQ68(4/4) AAS
>>790
ありがとうございます
技術文書としてとても興味深いです
現実的には64bit精度非対応GPUが多いので(市場シェア的にもAppleやintel iGPUをサポートしないわけにもいかない)
なかなか難しいですね
64bit精度を32bit精度×2にするアイデアはなかなか目から鱗、言われてみるとなるほど確かに!とても勉強になりました
全てが64bit精度なら至ってシンプルなのですが現実的にはなかなかそうもいかない感じなのですね
1-
あと 210 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.391s