)現在、元のソース ライブラリの 1 つ「Math3D」を大幅に置き換えて、私のインナーライブラリのひとつ「GLTool

s」をGitHubで非公開から公開に変更し、無事にソースを作成しました。 (技術的には、元のソースに常に変更され、非公開に変更されたこのレポを修正します)。 どちらのライブラリも MIT ライセンスの下で印刷されており、フリー ツールと産業用ツールの両方で自由に使用できます。 GLTools は OpenGL 用のツールキットであり、新しい make では、より強力な OpenGL ES 3.x (またはデスクトップ OpenGL 4.x)。 Math3D は、最初は OpenGL に非常に興味を持っていましたが、それ以降、特に不可知論者になり、OpenGL または Vulkan

で古いものになりました。 両方 1 つ。 特徴的な GLTools のコースの約 1 つは真の数学コースでもあり、代わりに Math3D に移行されました。 すぐにアクセスできる豪華な数学ライブラリとユーティリティ ライブラリがたくさんあります。それらの履歴以外に明示的なロードで私のものに特別なものは何もありません。ハング イニシアチブに取り組むとき、生産性のためにそれらのライブラリを選択する傾向があります。 誰もが格言を知っている、仕事のための 1 つの手順を選択し、全体として、1 つの手順はあなたが知っているものです。 これらのライブラリは両方とも、OpenGL SuperBible、 の時代に戻ります。フロリダ州オーランド近郊の Burly Whisk University で 15 年間教えた OpenGL クラス。 (OpenGL は、コンピューター ビデオ ゲームで学習するインタラクティブな 3D レンダリングを組み立てるためにプログラマーが使用するツール インターフェイスです)。 そのクラスは、マウントされた特徴的なパイプラインからシェーダーまで、15 年以上にわたって多くの進化を遂げ、途中で OpenGL ES に大いに魅了されました。モバイル プラットフォームで。 しばらくの間、私はInstrument Bisqueの契約の下で働くぽっちゃり時代の天文ツール開発者になりました。 )主に、しばらくの間、私のハングアップをいじっています。 このすべての作業は、OpenGL に完全に基づいており、接続されているすべてのグラフィックスが関係するように変更されました。 今はLunarGでぽっちゃり作業中ですが、無音でこつこついじっています側面に関する天文学のこと、そして多くの天文学ツールのディストリビューターのために少し非公式のコンサルティングを行っています.

LunarG での私の仕事は、私が考えているものに重力をもたらします。 私は

Vulkan SDK、主に macOS/iOS バージョンに直接取り組んでいます。 これを研究しているこのコンピューター プログラムの惑星で「マグル」である私の天文学仲間のために、詳しく説明させてください。 私は昔から OpenGL の「教養」を持っていましたが、今では OpenGL の後継として広く認識されている「Vulkan」に直接取り組んでいます。 「バルカン クールエイド」を飲んだことがあり、大ファンです。 それが話されました、それはその場所を持っています、そして別の時には、それはもはやすべてのタスクのための唯一の手順ではありません. OpenGL はもはや疲れることはなく、疲れからの長期にわたるアプローチです。 つまり、私は真に OpenGL ES を暗示しており、さらに細かいレベルの目標を OpenGL ES 3.x に位置づけています。 このレベルを強化する最も重要な議論が 2 つあります。バルカンと。 大量の GPU 計算処理能力を必要とし、ハードウェア アクセラレーションによるレイ トレーシングなどを行う余暇。「ビデオ ゲームが環境を支配する」とはいえ、技術的な機能や特別な非公式の 3D レンダリング ドメインが非常に必要とされていることはまた別の事実です。その正しいVulkanは必要ありません。 少し前に、従業員のチームが洗練されたゲームを OpenGL から Vulkan に移植し、レンダリング パフォーマンスが 3 fps 向上したというプレゼンテーションを見ました。 彼らもとても誇りに思っていました。 これはやや複雑なゲームになり、元に戻すのに苦労しました。 彼らは、ネイティブ OpenGL ドライバーで毎秒約 45 フレームを実行し、Vulkan ポートで 48 fps を購入しました。 K…まず第一に、私は少し戸惑いましたが、レンダリングの複雑さを考えると、Vulkan は OpenGL よりも非常に複雑なグラフィックス タスクに対してはるかに優れています。 それでも、あまり激しくないゲームが 60 fps で実行されている場合 (マントがリフレッシュできるので急いで描画している場合)、痛みを引き起こすレベルはどのくらいになる可能性がありますか? 明らかに、Vulkan はエッジ部分を下げるのに適していて、OpenGL よりも大きな変化です。 (バッテリ寿命の延長を実証することは、明確に実証する必要があり、もはや仮定しないでください)。 iPad を毎日使っていて、彼女がパズルや目の前の課題について説明している間、私はすぐに熟考します。 OpenGL ES 3.x で書かれている場合、Vulkan に移植するのに役立つだろうと彼女が私に示したものはまったくありません。 アドバイザーやエンジニアが OpenGL ES から Vulkan へのエンジンやゲームの移植を主張し、それがすでに 60fps になっている場合、私は真剣にその動機を尋ねます.

この日のOpenGLもVulkanの上に少し効率的にレイヤーされています.

第二に、OpenGL ES がなくなることはありません。 確かに、主要なディストリビューターはすべて、もはや OpenGL ドライバーを作成するつもりはなく、Vulkan に重点を置いていると聞いています。 ここは合法です。 それにもかかわらず、今日では時代遅れになっているイニシアチブがたくさんあり、Vulkan に似た低レベルで過度にパフォーマンスの高い API の上に OpenGL ES 3 に似た過度にレベルの高い API が存在する可能性があるパターンが追加されている可能性があります。 . サポートを進めるために何年も忙しくする必要がある強力なレガシ コードと関数へのアプローチがあります。 また、ネットブラウザの非定型に変化している 3D テクノロジーもあり、3D アクセラレーションされたネットベースの完全なビデオゲームと多くの機能を含めることができます。それらはすべて OpenGL ES 3 に準拠しており、全体的に階層化されています。バルカンのTOP。 Vulkan 上にレイヤー化された OpenGL ES 3 は、膨大な数の機能に対して非常に理にかなっています。これには多くのビデオ ゲームも含まれていると思います。 macOS では、Vulkan 自体が Apple の Steel API の上に真に階層化されており、Steel の上で賑わう OpenGL ES ライブラリがあり、Vulkan の上に階層化された OpenGL ES で実行されているアプリについて調べることができます。鋼。 これはパフォーマンスに何をしますか? うまくいけば、VR や AR、または集中的な没入型 3D ゲームを行っている場合は、実際に見えるヒット パフォーマンスを選択できます。 とはいえ、円グラフや跳ねるうさぎ、星座の輪郭などを描いていると、ちょっと話題にならなかったようです

性能の場合はエンジニアが気を使います。執着する。 私たちのお気に入りの娯楽の 1 つは、並べ替えアルゴリズムのパフォーマンスを評価することです。 バブル ソートは、パフォーマンスの点で最悪のソート アルゴリズムになる可能性がありますが、簡単な場合もあります。 プログラミングを正しく勉強している学生に教育することは大きなことです。 ほとんどのベテラン ビルダーは、製造コードでバブル ソートを使用するよりも、適度に死ぬでしょう。 事実はまた別の機会です。並べ替えるアイテムが 10 個しかない場合、どの並べ替えアルゴリズムを使用するかは問題ではありません (10 個のアイテム、500,000 ケースを並べ替えることが最も重要であるという複雑な例をいくつか割愛してください)

「それで、天文学の研究者リチャードはどうですか?」. いいですね、居住証明。 最近では天文学ツールのサプライヤーから、OpenGL ES コードを試してほしいと依頼されました。 それは大部分が OpenGL ES 2.0 で、いくつかの 3.0 がごちゃ混ぜになっています。 本当のことを言えば、少し近代化して交換するのは偶然かもしれませんが、別の機会には、Vulkan で完全なエンジンを書き直すように彼らに口をはさむように、説明のない作業を作成しているように見えます。 それはすでに快適でセクシーであり、追加について話しているいくつかの新しい「ジーウィズ」の問題があっても、今すぐ Vulkan に移行する正当な理由はまったくありません. また、Apple が例として OpenGL を完全に廃止する時期が早まる可能性もありますが、OpenGL を Steel または Vulkan の上に重ねるという選択肢はたくさんあります。 Vulkan はクロークできる新しい Android の王様でもあり、Android 用の Vulkan に OpenGL ES 3 を重ねる方法もあるようです (Google はこれに慎重に投資しています)。 製品パターンの場合、あなたの仕事のフェーズはトレードオフを判断し、タイムリーなモデルで製品を市場に出すことです。 確かに、最低限のパフォーマンス基準があるようですが、カノンを蚊を殺すために使用しないでください。そのような大きなノイズ、そして…そして…ブーン! これが、多くのエンジニアリング チームが、プロダクト スーパーバイザーのような大人の監督を必要とする理由です。 エンジニアは自分たちの仕事を引き受けますが、見込み客が自分たちのために余分な仕事を組み立てることになり、製品のアジェンダに損害を与えてしまいます。本当に2つあります。 1つはBTSというコードネームで、TSAの負荷です。 BTS は 2 年以上前から存在しており、日付は、私の S-Corp が環境ツールの作成に変更されたときまでさかのぼります。 私はツイン レンダリング バックエンドで Instrument Bisque を立ち上げ、それをやり直しました。その後、Vulkan よりも早く OpenGL アプローチで成長するようになり、私のモチベーションのフェーズが変更されたので、Vulkan で OpenGL と焦点レベルを捨てることを決心しました。私が始めた後、Vulkanのラベルエクストラに耐えるとすぐに。 私はもはや間違いではなかったとは言いません。生産性のために正しい OpenGL に戻るつもりだと思います。 (現在、私は自分で作品を作成するエンジニアです)。 Vulkan は OpenGL よりも優れていますが、OpenGL レンダラーはすでに 90+fps であり、率直に言って、コードはそれほど複雑ではありません。また、Vulkan よりも OpenGL の方が (夜間にゆっくりとコードを書く場合などに) 問題をより早く解決できます。 重要なことは、ミッションで疲れ果てるために、毎週数時間を大切にする必要があるということです。 うーん… 関係があるのですが、もし私が仕事を1週間休んだら、私はOpenGLモデルを永遠に自分で利用しているので、アプリの小売業者にOpenGLモデルを持っている可能性があります. 運輸保安局の任務はここにあります…ここで私の時間のほとんどを占めているミッションですが、それでも私は Vulkan を利用する必要があります。 私は、この天文学イメージング ソフトウェアでほぼ魔法のような専門知識をもたらすことを望んでいます。それには、私が集めることができる 1 オンスの GPU 馬力が必要であり、膨大な量の帯域幅と、GPU と CPU パイプライン間の慎重な同期が必要です。 私が探しているものを OpenGL で保護しようと努力するのは愚かなことです。 まあ、おそらくもう馬鹿ではありませんが、別の機会には非常に急いで忙しくする必要がある簡単な作業であり、Vulkan は明らかにその仕事の正しい手順です.

)時が経てば、このブログがわずか数年でどのように老朽化するかを調査します. その間の長さの中に、本当に書き留めるコードがあります….

ナビゲーションを公開する

𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺