タグ付けされた質問 「c++」

C ++は、静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語です。

2
C#Unityのポインター
ちょっと最近ポインタについて学んだばかりで、c#でそれらをどのように使用できるのか疑問に思っています(c ++でそれらについて学んだばかりです)。でもいくつか質問があります。 ポインターは低レベルのプログラミングを使用してコンピューター上のさまざまな値の位置を見つけます。つまり、任意のスクリプトから変数の値にアクセスできるということですか。 もしそうなら、ロケーションコードだけで変数のロケーションを呼び出すにはどうすればよいですか? C#とC ++のポインターの間に、私が知っておくべき識別可能な違いはありますか? Unityの変数タイプ(Vector3s、Transforms、GameObjectsなど)でポインターを使用するにはどうすればよいですか? さらに多くの質問があるので、追加の情報やソースがあるかどうかを確認します。

0
OpenFLを使用したSceneManagerの実装
OpenFLとHaxeを使用して基本的なSceneManagerを実装しようとしています。OpenFLとHaxeの使用経験はあまりないので、いくつか問題があります。 以下は、SceneManagerクラスの設計方法です。 package; import openfl.display.Sprite; import openfl.Lib; class SceneManager extends Sprite { private var currentScene: ...; public function new(rootScene: ...) { super(); currentScene = rootScene; Lib.current.addChild(currentScene); } public function changeScene(newScene: ...): Void { Lib.current.removeChild(currentScene); currentScene = newScene; Lib.current.addChild(SceneTwo); } } 「...」は、どのシーンでも保持できる一般的な「クラス」タイプに置き換える必要があります。 誰かがこれを解決するのを手伝ってくれるなら、私は本当に感謝するでしょう。

1
奇妙なSSAO効果(ビュースペース内の位置/通常のテクスチャが間違っていますか?)
主にホセマリアメンデスのgamedev.netチュートリアルに基づいて、ゲームエンジン(DirectX 11、C ++)でSSAO効果を作成しようとしています。残念ながら、テクスチャ作成の問題(法線、位置)はカバーしていません。 最初のパスでは通常のテクスチャを作成し、次に深度バッファもテクスチャとして読み取ります(2番目のパスでシェーダーリソースビューを作成し、深度バッファのバインドを解除するため可能です)。どちらもビュースペースにある必要があります。 ぼかしはまだ実装していません(後で実行します)が、現在いくつかの問題があります。テクスチャの計算が間違っているか、テクスチャからデータを変換する方法が間違っているためではなく、数式やパラメータの値が間違っているためと考えられます。 何がうまくいかなかったかについての私の推測: (ビュー空間での)通常のテクスチャ計算-しかし、それは見えます[OK]を、 位置テクスチャの計算(ビュー空間で)と位置から深度への変換 逆投影行列計算、 何かが正規化も飽和もされていないはずですが、 パラメータ(ただし、出力にそのような影響を与えるべきではありません)? 私のテクスチャ 拡散(textures[0]、ここでは実際には使用されません、比較のためにのみ): 通常(textures[1]、ビュー空間にある必要があります): 私はそれらを最初のパスの頂点シェーダーで取得します(ピクセルシェーダーはちょうどですoutput.normal = input.normal): output.normal = float4(mul(input.normal, (float3x3)world), 1); output.normal = float4(mul(output.normal, (float3x3)view), 1); 深度バッファテクスチャ(textures[2]、値の差が小さいため何も見にくいですが、問題ないと思います): それを表示するために私は使用します: float depth = textures[2].Sample(ObjSamplerState, textureCoordinates).r; depth = (depth + 1.0f) / 2.0f; color.rgb = float3(depth, depth, depth); 外部プログラムでのコントラスト補正後(私はシェーダーを使用しませんが、目には良いです): 深度バッファーの説明: //create depth …
8 c++  directx  directx11  hlsl  ssao 

2
特定のポイントを囲む最も近いポイント(それによってポリゴンを形成する)を見つけるにはどうすればよいですか(画像を参照)
私はゲームエンジンを使用していますが、私の仕事は、剛体メッシュの破壊をシミュレートするコードを追加することです。 現在、私はキューブの破壊に取り組んでいます。 私はボロノイのアルゴリズムを使用して(現実的な)破片を作成し、半平面法を使用してボロノイセルを生成しています。 これを行う方法はすべてのシードポイントに対してです。残りのシードポイントを使用して、垂直二等分面(画像の直線の黒い線)である平面を作成し、これらのすべての平面の交点を計算して、明確なポイントを与えます(すべてのオレンジ色のドット)。 ここまで来ました。 これらの計算されたすべての交点のうち、シードポイント(赤で囲まれたポイント)を最も近くかつ囲んでいる交点のみが必要であり、残りはすべて破棄する必要があります。 私が持っている情報: 1)すべての平面の平面方程式(正規化された法線ベクトルと原点からの距離で定義) 2)交点(計算したもの) 誰かが私が赤で囲まれたポイントを見つける方法を見つけるのを手伝ってくれる?

3
ボクセルデータの管理
私は今から約4か月間C ++で趣味としてプログラミングをしてきましたが、ボクセルを使ってものを作成するのが大好きでした。私はMinecraftのような世界をレンダリングする「ゲーム」(私は実際には地形のみを行い、ゲームプレイではないので、単なる個人的な挑戦の詳細)を書きましたが、最近、ゲーム/チャレンジ/などを書き込もうと考えていますマーチングキューブやデュアルコンターリングなどのアルゴリズムを使用し、ボクセルサイズを縮小します。Minecraftのようなプロジェクトを書いたとき、各チャンクのデータを符号なしshortの多次元配列に格納しました(したがって、最大65536の異なるブロックタイプが得られます)。さらに、レンダリングのために、1つのポイント(GLubyteとして)ともう1つのGLubyteだけを保存して、6つのポイントのうちどれが表されているポイントに面しているかを示しました。次に、ジオメトリシェーダーを使用して顔をレンダリングしました。 私が考えていた新しいプロジェクトで、頭を包むことができないのは、ボクセルが約1cmサイズのボクセルと比べて約5cmまたは10cmになるのに十分なボクセルデータをどのように保存できるかです。ブロックの704x704x704領域をレンダリングしたとき、私の古いプロジェクトは約670MBのRAMを使用していました。ボクセルサイズを10cmに縮小し、同じレンダリング距離を維持すると、ボクセルデータは約649GBになります(ボクセルごとに2バイトと7040 ^ 3ボクセルの領域を想定)。ボクセルデータをより効率的な方法で保存できる方法はありますか?
8 c++  voxels  data 

2
UpdateSubresourceとMap / Unmapの使い方は?
私が理解したこと(さまざまなページを読んだこと)から、バッファを更新する方法は2つあります。 UpdateSubresource()(DEFAULT使用法でバッファが作成された場合) Map()、新しいデータをコピーしますUnmap()(DYNAMIC使用法でバッファが作成された場合) 最初のケースでは、この1つの関数のみを呼び出しますか?バッファをマップしてからサブリソースを更新すると人々が言うのを見たことがあるので、あるいは私はそれらを誤解しているかもしれません。 また、他に方法はありますか(疑わしいです:P)?私は物事を正しく理解していますか?
8 c++  directx11 

1
OpenGLで頂点を描画する最も効率的な方法
私はOpenGL 3Dゲームを書いています。地形や使用中のオブジェクト用の多数の三角形があります。 私はOpenGL公式ガイドから勉強していて、最初に提示された方法は、描画したい各頂点のglVertex後に関数を呼び出すglBeginことです。 ただし、何千もの三角形を描く必要がある場合、この方法はかなり古くて非効率的です。各フレームで変化しない情報をグラフィックカードのメモリに保存する方法があるので、各フレームをレンダリングすると、その情報はすでにそこにあります。より「不安定な」情報については、おそらくフレームごとに新しい頂点データを送信する必要があるため、別の手法の方が効率的かもしれません。 私の質問に来ます:頂点情報をハードウェアに送信し、レンダリングするための指示を与えるために使用される最も近代的で効率的なOpenGL関数と技術の明確な説明をお願いします。 フレーム中にめったに変化しない頂点データをレンダリングするための順序を送信するための最良の方法とOpenGLツールは何ですか(私は地形とオブジェクトについて考えます)、フレーム中に大きく変化する頂点データを送信するための最良の方法は何ですか?

3
.fbxファイルのインポートと表示
.fbxファイルのインポート/表示に少し問題があります。 私は例をチェックしましたが、私が最も興味を持っているもの(アニメーションとテクスチャー)は、私のようにこれに慣れていない誰かが理解するためにひどく文書化されています。 これは私が試したことです:頂点と法線を取得することができましたが、各頂点のテクスチャ座標を取得することに行き詰まっています。 これまでのところ私のコードです: 3dModelBasicStructs.h struct vertex { float x,y,z; }; struct texturecoords { float a,b; }; struct poligon { int a,b,c; }; Model.h #ifndef MODEL_H #define MODEL_H #define FBXSDK_NEW_API #define MAX_VERTICES 80000 #include "3dModelBasicStructs.h" #include <fbxsdk.h> #include <iostream> #include <GL/glut.h> using namespace std; class Model { public: Model(char*); ~Model(); …
8 c++  opengl  3d  models  fbx 

3
OpenGLを使用してSDLで2D画像を描画する方法
結局のところ、openGLで2D画像を描画する方法を示す簡単なコードを見つけることができました。 #include "SDL/SDL.h" #include "SDL/SDL_opengl.h" #include "SDL/SDL_image.h" const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int SCREEN_BPP = 32; int tex; int loadTexture(char* fileName){ SDL_Surface *image=IMG_Load(fileName); SDL_DisplayFormatAlpha(image); GLuint object; glGenTextures(1,&object); glBindTexture(GL_TEXTURE_2D,object); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,image->w,image ->h,0,GL_RGBA,GL_UNSIGNED_BYTE,image->pixels); SDL_FreeSurface(image); return object; } void init(){ glClearColor(0.0,0.0,0.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0,800,600,1.0,-1.0,1.0); …
8 c++  opengl  sdl  windows 

3
OpenGL、FTGLのフォントの概要
ゲームでフォントをレンダリングするためにFTGLライブラリを使用していますが、テキストの周囲にアウトラインを作成する方法がまったくわかりません。影の作成は、次のように簡単にできるので簡単です。 (疑似コード) font.render(Color::BLACK, position.x + 1, position.y + 1); // Shadow font.render(Color::WHITE, position.x, position.y) // Normal text しかし、アウトラインを作成する方法は?残念ながら、インターネットでそれに対する興味深い解決策を見つけることはできませんでした。かなり奇妙に思えましたが、これは非常に人気のある問題だと思っていました。 大きなフォントだけでアウトラインを描くのは正しい方法ではありません。私が知ったように、この場合は文字が一致しないからです。 では、フォントのアウトラインを作成する簡単な方法はありますか?彼らは実際のゲームでそれをどのように行うのですか? どんな答えも事前にありがとう
8 c++  opengl  gui  fonts 

2
データ指向設計の例
一般的なゾンビゲームのデータ指向のデザインの良い説明が見つからないようです(これは単なる例であり、かなり一般的な例です)。 ジェネリックゾンビクラスの作成に関するデータ指向デザインの例を挙げていただけませんか?以下は良いですか? ゾンビリストクラス: class ZombieList { GLuint vbo; // generic zombie vertex model std::vector<color>; // object default color std::vector<texture>; // objects textures std::vector<vector3D>; // objects positions public: unsigned int create(); // return object id void move(unsigned int objId, vector3D offset); void rotate(unsigned int objId, float angle); void setColor(unsigned int objId, …

3
ゲームアセットストレージ:アーカイブvs個別ファイル[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 私は3D c ++ゲームを作成している最中なので、ストレージに関してゲームアセットを処理するときに、何がより有益かを考えていました。一部のゲームでは、すべてが圧縮された単一のアセットファイルと、多数の小さな圧縮ファイルを含む他のアセットファイルが見られます。 個別のファイルがたくさんある場合、一度に大きなファイルを読み込んでメモリを使い果たす必要はありませんが、必要なすべての正しいファイルを見つけるために、レベルが読み込まれたときにコードがファイルを探す必要があります。 1つの大きなファイルを処理するときに必要なファイルシークはありませんが、1つのファイルでロードされる、現在必要ではないすべてのアセットについてはどうでしょうか。 レベルごとにアセットファイルを作成することもできますが、共有アセットをどのように処理しますか これはしばらくの間私を悩ませてきましたので、物事のどちらの方法にも他の長所と短所があるか教えてください。

3
具体的な操作でバイナリの文字/アイテムの操作を行うにはどうすればよいですか?
次の問題があります。 アイテムは多くの状態を持つことができます: NORMAL = 0000000 DRY = 0000001 HOT = 0000010 BURNING = 0000100 WET = 0001000 COLD = 0010000 FROZEN = 0100000 POISONED= 1000000 アイテムは同時にいくつかの状態を持つことができますが、すべてではありません 同時にドライとウェットになることは不可能です。 ウェットアイテムをコールドすると、冷凍に変わります。 ウェットアイテムをホットにすると、通常に変わります アイテムはバーニングとポイズンにすることができます 等。 バイナリフラグを状態に設定し、ANDを使用してさまざまな状態を組み合わせたり、可能かどうかを事前に確認したり、別のステータスに変更したりしました。 新しい状態ごとにすべての状態をチェックするスイッチがなくても、この問題を効率的に解決するための具体的なアプローチはありますか? 2つの異なる状態をチェックすることは比較的簡単ですが、3番目の状態が存在する場合、それを行うのは簡単ではありません。

3
OpenGL Fast-Object Instancing Error
オブジェクトのセットをループしてそれらのオブジェクトのインスタンスをレンダリングするコードがいくつかあります。レンダリングする必要があるオブジェクトのリストはstd :: map>として保存されます。MeshResourceクラスのオブジェクトには実際のデータを含む頂点とインデックスが含まれ、classMeshRendererのオブジェクトはメッシュが配置される空間内のポイントを定義しますでレンダリングされます。 私のレンダリングコードは次のとおりです。 glDisable(GL_BLEND); glEnable(GL_CULL_FACE); glDepthMask(GL_TRUE); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); for (std::map<MeshResource*, std::vector<MeshRenderer*> >::iterator it = renderables.begin(); it != renderables.end(); it++) { it->first->setupBeforeRendering(); cout << "<"; for (unsigned long i =0; i < it->second.size(); i++) { //Pass in an identity matrix to the vertex shader- used here only for …

2
2Dタイルマップのカスタム拡張ファイル形式
現在、ゲームロジックの多くを実装していますが、何かを操作できるように、オンザフライで厄介なforループを使用してマップを作成しています。次に進んで、このデータを(非)シリアル化する方法についていくつかの調査を行いたいと思いました。(私はマップエディターを検索しません-私はマップファイル自体について話しています) 現時点では、提案とリソース、次の機能を提供する(MoSCoWメソッドに基づく)マップにカスタムファイル形式を実装する方法を探しています。 持つ必要があります 拡張性と下位互換性 異なるレイヤーの処理 タイルが固体であるか通過できるかに関するメタデータ 関連するプロパティ/メタデータを持つエンティティ/トリガーの特別なシリアル化 持つことができた ファイル/タイルセットが散らばらないようにするためのタイルセットのある種の包含 C ++(SDLを使用)で開発しており、Windowsのみをターゲットにしています。役立つヘルプ、ヒント、提案などがあれば、よろしくお願いします! 以下の議論の結果 私は過去数時間にマップファイル形式を設計していて、スケルトン(今のところレイヤーのみが含まれている-残りは彼/彼女の独自の形式を設計しているすべての人に任せる)を考えた。同じ意図があり、何らかのインスピレーションを得ることができます。フルサイズのスクリーンショットはImgurからダウンロードできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.