エンジンの開発にはどのような技術が関わっていますか

       エンジンの開発にはどのような技術が関わっていますか

ゲームエンジンの概念

  ゲームエンジンとは、編集されたコンピュータゲームシステムやインタラクティブなリアルタイム画像アプリケーションのコアコンポーネントを指します。これらのシステムは、ゲームを作成するために必要なさまざまなツールをゲームデザイナーに提供します。その目的は、ゲームデザイナーが、ゼロから始めることなく、ゲームプログラムを簡単かつ迅速に作成できるようにすることです。それらのほとんどは、Linux、Mac OS X、MicrosoftWindowsなどの複数のオペレーティングプラットフォームをサポートしています。ゲームエンジンには、レンダリングエンジン(つまり、2Dイメージエンジンと3Dイメージエンジンを含む「レンダラー」)、物理エンジン、衝突検出システム、効果音、スクリプトエンジン、コンピューターアニメーション、人工知能、ネットワークエンジン、シーンが含まれます。管理。[Baiduから]

ゲームエンジンに関わる技術

1.レンダリングエンジン

  レンダリングエンジンは、レンダリングマネージャーで構成されています。このマネージャーは、GPUにデータを送信し、正しいシェーダーをアクティブ化する責任があります。
  画面にピクセルをレンダリングするには、GPUと通信する必要があります。これを行うには、媒体が必要です。この媒体はOpenGLと呼ばれます。
  OpenGLはプログラミング言語ではなく、その目的はCPUからGPUにデータを転送することです。したがって、コンピュータグラフィックス開発者としてのあなたの仕事は、OpenGLオブジェクトを介してGPUにデータを送信することです。このため、GPUには次の3つのデータセットが必要です。

  1)属性データ:GPUがジオメトリを組み立て、照明と画像をゲームキャラクターに適用するために使用します。
  2)ユニフォームデータ:GPUに空間データを提供します。
  3)テクスチャデータ:テクスチャは、文字をラップするために使用される2D画像です。

GPUは、次の4つのシェーダーで構成されています。

  1)頂点
  2)サーフェス
  3)サブディビジョンサーフェス
  4)ジオメトリ

  シェーダーはGPUに存在するプログラムです。それらはプログラム可能であり、ジオメトリとピクセルカラーの操作を可能にします。
  詳細リンク

2.物理エンジン

  ゲーム物理エンジンには、主に次のものが含まれます:粒子数学、運動の法則、粒子物理エンジン、合力、弾性力、ハード制約、質量体物理エンジン、回転操作の数学的知識、剛体操作法則、剛体物理エンジン、衝突検出、衝突生成、衝突処理スキーム、静的接触と摩擦、安定性と最適化の問題、統合スキーム、およびその他の物理エンジン。

3.ゲームの効果音

分類

  現在の国内ゲームの音響構造から判断すると、簡単に次のように分類できます。
  効果音の形式と制作方法による分類
  1)モノフォニック効果音
  2)複合効果音
  3)音楽効果音
  は機能別に分類されます:
  1)インターフェース効果音
  2)NPC効果音
  3)環境効果音
  4)スキル効果音
  5)背景効果音

フォーマット

  1)Wav / mono(stereo)/44.1KHZ/16ビット
  2)mp3 / Stereo / 128K
  3)ACC
  フォーマット自体は良くも悪くもありません。ゲームエンジンの互換性に応じて使用するフォーマットを決めることができます。
  詳細リンク

4.スクリプトエンジン

  スクリプトエンジンは、コンピュータプログラミング言語のインタプリタであり、ユーザーのプログラムテキストを解釈して実行し、コンピュータで実行できるマシンコードに変換して、一連の機能を実行します。

  dbaseIII、foxbaseなどの初期のデスクトップデータベースもスクリプトプログラミング言語に属しています。

スクリプト言語の操作メカニズム

  1)スクリプト言語の主な欠点は実行速度です。従来のスクリプト言語の実行は、コンパイルされたC、C ++言語よりも遅くなるか、遅くなります。その理由は、スクリプト言語が仮想マシン(仮想マシンVM)と呼ばれるものによって解析および実行されるためです。仮想マシンは、プログラム自体の一部であるソフトウェアの独立したモジュールです。仮想マシンは、メインゲームプログラムとスクリプトの間のブリッジを移植します(2を参照)。ここでの仮想マシンは、実際にはいわゆるスクリプトエンジンです。
  2)スクリプトは仮想マシンによってリアルタイムで解析され、メインプログラムまたはゲームエンジンが仮想マシンを統合している場合、開発者に関する限り、スクリプト内のものにいつでもアクセスできます。メソッド、変数、またはその他のオブジェクト。同様に、スクリプト言語はプログラム内のメソッドとオブジェクトにアクセスできます。したがって、スクリプトファイルに新しいメソッドを記述してプログラムで使用できるため、スクリプト言語を使用して、いつでも固定コードの機能を拡張できます。

ゲームにスクリプトエンジンを追加する理由

  スクリプトは、ゲームエンジン全体をコンパイルせずに、ゲームの主な機能を記述できる機能を提供するためです。たとえば、AI、UI、ゲームイベント、ゲーム機能の保存と読み込みなど、ゲームのほとんどのコンポーネントモジュール。スクリプトは、ゲームのロジックを変更するための編集ツールを提供し、リアルタイムで実行できます。
  Unityでは、作成するc#は、monoで実行されるスクリプト言語です。

5.コンピューターアニメーション

コンピュータアニメーションには2つのタイプがあります。

  1.コンピューター作成アニメーション:3Dアニメーションと一緒に作成および制作することを指します。
  2.コンピューターで作成されたアニメーション:PSプレーンソフトウェアを使用してアニメーションページを作成することを指します。これにより、多くのコストを節約できます。

アニメーションソフトウェア

  主流のコンピュータアニメーションソフトウェアには、3ds max、maya、flash、poser、Xara3Dなどが含まれます。
  詳細リンク

6.人工知能

  人工知能(人工知能)、英語の略語はAIです。これは、人間の知性をシミュレート、拡張、拡張するために使用される理論、方法、技術、およびアプリケーションシステムを研究および開発する新しい技術科学です。
  人工知能はコンピュータサイエンスの一分野であり、知能の本質を理解し、人間の知能と同じように反応できる新しいインテリジェントマシンを生み出そうとします。この分野の研究には、ロボット工学、言語認識、画像認識、自然言語処理が含まれます。および専門家システムなど。人工知能の誕生以来、理論と技術はますます成熟し、応用分野は拡大し続けており、将来、人工知能によってもたらされる技術製品は、人間の知恵の「コンテナ」になると考えられます。人工知能は、人間の意識と思考の情報処理をシミュレートできます。人工知能は人間の知能ではありませんが、人間のように考えることができ、人間の知能を超える可能性があります。
  人工知能は非常に挑戦的な科学であり、この仕事に従事する人々はコンピューターの知識、心理学、哲学を理解する必要があります。人工知能には非常に幅広い科学が含まれ、機械学習、コンピュータービジョンなど、さまざまな分野で構成されています。一般的に、人工知能研究の主な目標の1つは、機械に通常必要なタスクを実行できるようにすることです。人間の知性。複雑な仕事。しかし、時代や人によって、この「複雑な仕事」に対する理解は異なります。[^ 1] [人工知能はBaidu百科事典から取得]

  詳細についてはリンク

7.ネットワークエンジン

  インターネット検索エンジンは、他のサイトに保存されている情報を見つけるのに役立つように設計された、ワールドワイドウェブ上の特別なサイトです。

エンジン構成:

1.サーチャー

  その機能は、インターネットを歩き回り、情報を発見して収集することです。

2.インデクサー

  その機能は、サーチャーによって検索された情報を理解し、そこからインデックスアイテムを抽出し、それを使用してドキュメントを表し、ドキュメントライブラリのインデックステーブルを生成することです。

3.レトリーバー

  その機能は、ユーザーのクエリに従ってインデックスデータベース内のドキュメントをすばやく取得し、関連性の評価を実行し、出力する結果を並べ替え、ユーザーのクエリのニーズに応じて情報を合理的にフィードバックすることです。

4.ユーザーインターフェース

  その役割は、ユーザークエリを受け入れ、クエリ結果を表示し、パーソナライズされたクエリアイテムを提供することです。

5、ロボット

  ロボットプロトコル、ウェブサイトは検索エンジンにどのページがクロールできるか、そしてどのページがロボットプロトコルを通してクロールできないかを伝えます。Robotsプロトコルは、Webサイトのインターネットコミュニティで一般的な倫理規定です。その目的は、Webサイトのデータと機密情報を保護し、ユーザーの個人情報とプライバシーが侵害されないようにすることです。コマンドではないので、意識的に検索エンジンをフォローする必要があります。

現在の主流のネットワークエンジン

ACE:http
://www.cs.wustl.edu/~schmidt/ACE.html ASIO:www.boost.org
RakNet:http ://www.jenkinssoftware.com/
国内ネットワークエンジン製品は次のとおりです。http:// www .joy70.com /

8.シーン管理

参考記事

http://www.cnblogs.com/kex1n/archive/2012/08/26/2657054.htmlシーン管理の概要について
http://www.cnblogs.com/wangchengfeng/p/3495954.html?utm_source=tuicoolcommon three -次元シーン管理
http://blog.csdn.net/zhanxinhang/article/details/6706217quadtreeおよびoctreehttp
//blog.sina.com.cn/s/blog_6471e1bb010135w1.html bspツリー種ポータルカウント
http:/ / www.cnblogs.com/eyeszjwang/articles/2429382.htmlkdツリーの原則
http://www.cnblogs.com/v-July-v/archive/2012/11/20/3125419.htmlkdツリーの詳細な説明

一般的なシーン管理技術

  多くのオブジェクトを含む3Dシーンの場合、シーンをレンダリングする最も簡単な方法は、リストを使用してこれらのオブジェクトを保存し、レンダリングのためにGPUに送信することです。もちろん、実際にレンダリングする必要のあるオブジェクトは錐台内のオブジェクトである必要があるため、このアプローチは効率の点で非常に非効率的です。さらに、トリミングアルゴリズムと衝突検出アルゴリズムの効率から、このデータ構造を使用することも非常に非効率的です。より良い方法は、BVH(境界ボリューム階層)、BSP(バイナリ空間分割)ツリー、四分木、八分木、ファジーKDツリーなど、レンダリングされるオブジェクトを格納するための階層構造を持つ空間データ構造を使用することです。空間検索またはカリングを実行するときに、時間の複雑さをO(n)からO(logn)に減らします。もちろん、対応するコストは、各フレームが更新されるときに、対応する空間データ構造を更新する必要があることです。

一般的なシーン管理方法

多层次包围盒(BVH)
四叉树
八叉树
BSP树
k-d树 

元のリンク:https//blog.csdn.net/u012234115/article/details/47156217

おすすめ

転載: blog.csdn.net/weixin_44870508/article/details/102794230