問題タブ [normals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
8664 参照

opengl - クワッドの頂点法線の計算

次の配列があるとしましょう:

私はこのように記入します:

この時点で、すべてがOKです。クワッドをレンダリングし、テクスチャを付け、ストレッチし、すべてを行うことができます。

しかし今、私はクワッドの法線を計算したい:

しかし、GL_QUADS の 4 つの頂点または GL_TRIANGLES の 6 つの頂点のいずれかを含む単純な 2D 頂点配列の法線を計算する方法がわかりません....

0 投票する
2 に答える
1673 参照

xna - XNA の立方体の表面の法線

誰でも助けてください。

3DS Max で作成した立方体があります。立方体の寸法がわかりません。立方体の面の各三角形の頂点を取得する方法はありますか? 立方体の面の1つに法線を取得して、その向きを決定しようとしています。したがって、頂点を決定できれば、面の法線を取得できます。3 つの頂点 V1、V2、V3 が反時計回りに並べられている場合、(V2 - V1) x (V3) を計算することで法線の方向を取得できます。 - V1)、ここで x は 2 つのベクトルの外積です。

モデルの .fbx ファイルを調べたところ、いくつかの値が表示されています: Vertices: *24 { a: -15,-12.5,0,15,-12.5,0,-15,12.5,0,15, 12.5,0,-15,-12.5,0.5,15,-12.5,0.5,-15,12.5,0.5,15,12.5,0.5}

PolygonVertexIndex: *36 { a: 0,2,-4,3,1,-1,4,5,-8,7,6,-5,0,1,-6,5,4,-1,1 ,3,-8,7,5,-2,3,2,-7,6,7,-4,2,0,-5,4,6,-3}

これらは私のモデルの頂点ですか? また、Vertices: * 24は頂点のリストですが、なぜ 24 しかないのでしょうか? 立方体には 36 個の頂点があってはならないのですか? そして最後に、頂点の座標がPolygonVertexIndex の場合: * 36これらの値は、頭の中にある立方体がこれらの寸法であると想像すると、私にはずれているように見えますか?

または、各頂点のすべての値を手動で入力しなくても、立方体の頂点を自動的に取得する方法はありますか? 私はいくつかのモデルを持っているかもしれません

どんな助けでも大歓迎です

0 投票する
1 に答える
423 参照

opengl - Java3d - GeometryInfo を使用した不正な法線

WindowsのEclipse IndigoでJava3dを使用しています。最後に StlLoader の例と ObjLoad クラスを変更して STL ファイルをロードすると、以下のような結果が得られます (他の質問から、これらは間違いなく悪いベクトル法線だと思います)。なぜ私がこの問題を抱えているのか知っている人はいますか? SolidWorks を使用して STL を ASCII ファイルとして保存し、java3d.org で提供されている STL ファイルをロードするためのコードの変更を使用しています。一部の外観プロパティを変更し、破損したインポートなどを修正しただけですが、以下の「normList」に入れられたファセット法線がファイルのものと完全に一致することを確認しました。

結果の例:

ここに画像の説明を入力

http://www.java3d.orgからの StlFile.java のスニペット:

0 投票する
4 に答える
1565 参照

c++ - openGL での法線の動作がおかしい

私はopenGl用の.objローダーを書いています。ジオメトリは正常に読み込まれますが、法線は常にめちゃくちゃです。2 つの異なるプログラムでモデルをエクスポートしようとしましたが、何も機能していないようです。私の知る限り、これはGL_TRIANGLESに法線を入れる方法です

(法線はコードの残りの部分で GLfloats を参照しています。)

編集: これは法線が壊れた等面体の写真ですここに画像の説明を入力

これは完全な obj ローダー コードとファイルです。

}

obj ファイル:

0 投票する
1 に答える
1242 参照

objective-c - OpenGL で法線を描画する正しい方法は?

現在、OpenGl でプログラムを作成しています。ファイルから複雑な 3D フィギュアをレンダリングしています。コードを 3 回チェックした後、すべての値が正しく読み取られていることがわかりました。奇妙な動作をするのは法線だけです。私はそれらを次のように描いています:

値は GLFloats から読み取られています。正しい方法、または少なくとも私が間違っていることを教えてください。

0 投票する
2 に答える
4154 参照

c++ - DirectX 11でシェーダーの法線情報を追加します-法線はシェーダーに表示されませんか?

シェーダーの法線マップ情報を追加したかったのです。私はDirectX11C++SDKのチュートリアル5をベースとして使用していました。

シェーダーを作成するためのコードは次のとおりです(すべての重要な情報を投稿したことを確認するために置いていますが、重要なのはD3D11_INPUT_ELEMENT_DESCレイアウト[]だけだと思います)。

したがって、単にD3D11_INPUT_ELEMENT_DESC layout []を(「NORMAL」行を追加)に変更しました。

ボックス作成方法の数行を変更したよりも:

したがって、すべての行の最後のXMFLOAT4は法線です(これらが間違った法線であることは重要ではありません。今度は頂点シェーダーで表示したいだけです)。

SimpleVertexも変更しました。

そして、法線が存在するかどうかを確認するための私のシェーダー:

しかし、効果は単なるブラックボックスでした(output.Color = input.Normalの場合でも)。

だから問題は何ですか?シェーダーで法線情報を取得するには、他に何かを変更する必要がありますか?

0 投票する
1 に答える
757 参照

cube - 三角ストリップを使用してフラットシェーディングキューブを作成します

三角ストリップが法線でどのように機能するかについて、私は完全にしっかりしているわけではありません。平らな陰影のある立方体を作成したいので、立方体を作成する三角ストリップの頂点を作成しました。それはうまくいきます。三角ストリップを使って立方体を作りました。問題は、各頂点の法線を立方体の中心の反対方向として設定することです。したがって、シェーディングはすべて奇妙です。両面をフラットカラーにしたいです。これを達成するために法線を設定する方法はありますか?

0 投票する
2 に答える
2765 参照

opengl - スムーズ コーン法線

円錐の滑らかな法線を計算しようとしています。コード サンプルと説明を探していると、常に顔の法線の指示に出くわします。私がしていることのいくつかの写真を以下に投稿しました。最初の - 基本的には頂点位置を正規化するだけ - かなりスムーズなシェーディングが得られますが、エッジが「欠落」しており、底面がしっかりしていません。2 番目にはエッジがありますが、シェーディングはフラット (顔の法線) であり、光が正しく反射していません。

円錐は GL_TRIANGLES から構築されます。

画像をクリックすると拡大版が表示されます。


(ソース: bantherewind.com )


(ソース: bantherewind.com )

0 投票する
1 に答える
5744 参照

opengl - トライアングル ストリップで NORMAL を計算する方法

OPENGL プロジェクトの照明に問題があります。私は ECLIPSE を使用して C++ でプログラミングしています。三角形のストリップで構成された地形があります。私のレンダリングのコードは次のとおりです。

頂点に法線を使用しようとしていますが、glnormal 関数の引数を計算する方法がわかりません。次に、顔に法線を使用する必要があります。この問題で私を助けてくれますか?


はい、面ごとに法線が必要です。その後、頂点ごとに法線を実行する必要があります。面ごとに法線を作成するには、これを行います。int i = 0; glPushMatrix(); glRotatef(angle, xrot, yrot, zrot);// オブジェクトを回転 cout<<"valore di nrows è: "<getHeights(j); float vectorba[3]={0.0,0.0,0.0}; float vectorcb[3]={0.0,0.0,0.0}; float xnormal = 0.0; float ynormal = 0.0; float znormal = 0.0; float len=0.0;

処方は正しいですか?法線と正規化の関数を使用してレンダリングを変換するにはどうすればよいですか?

0 投票する
1 に答える
554 参照

c# - パッチ法線アルゴリズム

最初にすべての面の法線ベクトルを計算し、その後面の角度で重み付けされた面法線から頂点法線を計算する「patchnormal」と呼ばれる MATLAB アルゴリズムを再現しようと懸命に努力しています。(下図参照)

このような数学的使用に向けられた WPF C# の 3D メッシュに使用できる無料のライブラリはないようです。それともありますか?

問題は 、すべての頂点に対してこの (赤) ベクトルを計算するにはどうすればよいかということです。リアルタイム シミュレーションで使用できるように最適化できますか?

パッチノーマルイラストイメージ
(ソース:hostingpics.net