質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Q&A

1回答

2801閲覧

テクスチャが透けてみえる。欠けがある。腹部が描画されていない。

txty

総合スコア303

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

0グッド

0クリップ

投稿2020/09/21 17:54

編集2022/07/26 11:22

fscanfは間違えてますが関係ないようなので質問します。
題名のとおりテクスチャが透けたり、欠けがあったり、腹部が描画されてないようです。
どこに問題があるのか指摘してください。どんなときにこのようなことがおきるのでしょうか

(frameの時点でソースコードが足らなかったようなのでソースコードは載せないです
過去に記載されているソースコードは、あっていません。詳しくはhttp://rudora7.blog81.fc2.com/blog-entry-310.html こちらを参考にしてください)

追記fscanfの書式指定文字列に変なのが含まれてたので削除しました。

追記 glEnable(gl_NORMALIZE);の理解が不足しているため、消しました。

追記 xファイルをつかっているので、右手座標系と左手の座標系の変換のために、z座標を-1倍しなくてはいけないかもしれません。(あってるかわからないので間違いがあるかもしれません。)...参考にした本 Directx9 シェーダプログラミングブック
p129 右手座標系と左手座標系の間はx、y、z軸のどれかひとつ(もしくは3つ)の軸にスケールをー1倍すれば行き来することができます。という文献をみました。

あととこの紙面のコードにおいて間違いや問題が生じても責任はとりません。

不勉強なため frame を理解できていないため、上手く書けません。すいません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stdio

2020/09/21 23:48

せめてソースコードは載せて下さい。 前回の質問と今回の質問は別物です。今回の質問だけでも話が分かるようにお書き下さい。
txty

2020/09/22 04:05

ソースコードを載せました。一応、目を通していただけるとありがたいです。とくにオブジェクト同士(腕と体)が重なった時透けて見える点などについてなどです。
stdio

2020/09/22 06:57

オブジェクト同士が重なった時に見えなくなる現象は原因がよく分かりませんが、見た感じ法線の向きが影響してそうな感じがします。元の3Dモデリングの設定を睨んだ方が良いかも知れません。 それと何かファイルを独自ファイルに変換されているように見えましたが、変換時にこれでいいか等の画面を出すのも手かと思います。
txty

2021/10/13 11:04 編集

コメントありがとうございます。参考にします。 追記:関係ないけど、 float diffuse[]={1.0,1.0,1.0,1.0}; float specular[]={1.0,1.0,1.0,1.0}; float ambient[]={1.0,1.0,1.0,1.0}; float shininess=5.0; ..................... glMaterialfv(GL_FRONT,GL_DIFFUSE,diffuse); glMaterialfv(GL_FRONT,GL_SPECULAR,specular); glMaterialfv(GL_FRONT,GL_AMBIENT,ambient); glMaterialf(GL_FRONT,GL_SHININESS,shininess); を忘れてた。
guest

回答1

0

情報があまりないので同じケースかはわかりませんが、パースペクティブの行列でnearの値を小さくしすぎて表示がおかしくなったことがありました。

投稿2021/10/19 10:23

tkaaad97

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

txty

2021/10/19 10:36

ありがとうございます。ファイルを消してしまい、すぐに確かめられないのですが、パースペクティブ、調べてみます。
fana

2021/10/19 10:59

nearを小さくしすぎて「???」ってなるのは あるある ですね. (その場合だと,モデルの極一部だけじゃなくて全体的に表示されなくなるんじゃないかな)
fana

2021/10/19 12:01 編集

> パースペクティブ、調べてみます。 4x4 の透視投影の行列の中身(要素)について説明しているような話を見つけると良いでしょう. で,nearの値を極端に小さくしたら,near と far が含まれている要素(行列内に2つ並んであるハズ)の値がどうなってしまうのか? という観点で考えて見ると良いかと.
txty

2021/10/19 11:55

ありがとうございます。探してみることにします。
txty

2024/01/02 02:24 編集

まず、法線を設定しました。 次にnearを以下のように調整しました。 glViewport(0,0,600,573); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(40.0,(double)600/(double)573, 2.0f,50.0f);とし、0.1から2.0の範囲で調整しましたが腹部はでませんでした... 最後に画面に映るように調整しました。 glPushMatrix(); .... glTranslatef(-0.5,-0.5,-1.9); .... 移動量だから、いみなさそうですが、調整しました。 Perspectiveはあまり考えてなかったので、無調整になっておりました。今回、設定することができました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問