トップページ⇒tech
58コメント15KB

OpenGLについて質問です。

■ このスレッドは過去ログ倉庫に格納されています
0001すうちんNGNG
ヴィジュアルC++で、openGLをコンパイルすると、GL.hにえらーがでます。
なぜでしょう、、このせいで、ぜんぜんすすめないのです
だれか、おしえてくださーーい;;
0002C学習者NGNG
gccでしかやったことないんですけど
どういうエラーですか?
0003午後TeaNGNG
GLUTだけインクルードしてみれば?
0004名無しさん@お腹いっぱい。NGNG
氏ね>1
0005すうちんNGNG
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1135) : error C2144: 構文エラー : ';' が型 'void' の前に必要です。
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1135) : error C2501: 'WINGDIAPI' : 識別名を宣言するのに、型が指定されていません。
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1135) : fatal error C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
とでてしまうのです。
GLUTとは???
GLU.Hはあるのですが、、


0006名無しさん@お腹いっぱい。NGNG
4に全面的同意
0007名無しさん@お腹いっぱい。NGNG
質問の仕方↓

http://www.amy.hi-ho.ne.jp/~lepton/program/prog/prog19.html
0008すうちんNGNG
あ、すみません、、
VC6.0を使っているんですが、プロジェクトの設定にて、
GLのライブラリを追加すれば、できるとありましたので、そのとおりやり、
サンプルぷろぐらむを動かしたところ、コンパイル時にGL.hにエラーが出てしまいます.
また、それを抜かして、glaux.hのみのぷろぐらむにしたところ、うまくいきました.
gl.hでつかってるのは、sleepのみです。

どうか、お願いいたします。
0009名無しさん@お腹いっぱい。NGNG
とりあえず C2144 のエラーはすぐに対処できそうだが?
0010名無しさん@お腹いっぱい。NGNG
>gl.hでつかってるのは、sleepのみです。
sleepってgl.hじゃないっしょ?

もしかして赤本(OpenGL programming Guide/OpenGL ARB)見ながら書いてる?
0011名無しさん@お腹いっぱい。NGNG
windows.hインクルードしてる?
0012名無しさん@お腹いっぱい。NGNG
OpenGLのライト&マテリアル設定がよう解らんです。

どう設定してものっぺりした感じになってしまいます…
何か根本的に間違ってるのでしょか
0013名無しのエリーNGNG
マテリアルの GL_SHININESS を大きくすれば
つやのある感じにはなるよ。
0014すうちんNGNG
ありがとうございますー>11
それ、インクルードしたらとおりましたー

そ、、、、そうみたいですね、、>10
sleep、また、ていぎされてないっていわれました。;;
それは、どうすれば、よいのでしょう、、
なにか、インクルードするのでしょうか?
0015名無しさん@お腹いっぱい。NGNG
>>14
OpenGLをやる前に、Windowsのプログラムの勉強が先だろう
0016名無しさん@お腹いっぱい。NGNG
>>15 あと日本語モナー。
0017すうちんNGNG
ヴァカ野郎、わかんねぇから聞いてるんだ、
Windowsプログラムも日本語も
1から10まで教えろ!
0018名無しさん@お腹いっぱい。NGNG
1@`2@`3@`4@`5@`6@`7@`8@`9@`10

これ以降は自分で調べろよ。
0019すうちんNGNG
↑17は、かいてないですよー;_;
まじで、、、
ひどいです
0020名無しさん@お腹いっぱい。NGNG
>12=1
ちょっと質問
テクスチャを貼ったモデルでのっぺりした感じになるのですか?
002112NGNG
1じゃ無いって(泣

テクスチャ無しのポリゴン毎カラー指定のオブジェクトです。
どうもライトが上手く設定出来て無い模様…
002220NGNG
おぉおぉ申し訳ない。(;゚Д゚)
もう一回質問。マテリアルの設定はglColorMaterial使ってるんですか?(あまり関連詳しくないけど…)
0023名無しさん@お腹いっぱい。NGNG
それが抜けてた
002412NGNG
>>22-23
ビンゴっぽいです(死 1行加えたら急に変化したのでこれから調整してみます。
ありがとうございました。

あと、やっぱりマテリアルとは別にライトも変なんですよね…
点光源|平行光源のつもりなのに、GL_POSITIONで座標を指定すると
どうしてもその座標から0@`0@`0に向くスポットライトに成るんです。
それならばとGL_SPOT_DIRECTIONを指定しても無反応…
どうしたもんでしょ。
002522NGNG
>24
GL_POSITIONに渡す4番目(w)を0にしてる?(0@`0@`1@`0←これ)
wが0だと方向、wが0以外だと位置を示す
って感じだったと…(いや、反対だったかな…)
glColorMaterialじゃなくglMaterialの方オススメ…
002612NGNG
0だとベクトル向きの平行光源、1だとその場所に位置する点光源
と書いてあるのですが、これであってるんですよね…
今手探りで弄ってますが、glColorMaterialとglMaterialは
排他使用する物なんですか?

試しにglMaterial外してみたら何故かセルシェーディング風に(汗
偶然とは恐ろしい
002722NGNG
>12
ライトの方向が逆だったりしない?
glColorMaterialは値の設定にglColor使います。単一の素材パラメータを………。(実は良くわからん)
とりあえずglMaterial使って♪(;゚ ゚)
0028名無しさん@お腹いっぱい。NGNG
これからMesaをやろうとしているんですが,
今までの(WINDOWSの)プログラムはそのまま使えるんですか?
0029名無しさん@お腹いっぱい。NGNG
使えます。>28
003012NGNG
早速寝起き早々Color系全廃してMaterialに置き換えてみました…
が、ライトがどうしても平行光源に出来ないのでどんな状態なのか
いまいち解りません…なんで平行光源に出来ないんだろうかな。
0031名無しさん@お腹いっぱい。NGNG
ほれっ。

GLfloat v[4] = {1.0@` 1.0@` 1.0@` 0.0};
::glLightfv(GL_LIGHT0@` GL_POSITION@` v); //* 平行光源 *
003212NGNG
>>31 いや、それがならないんですよ…本当に。
0033名無しさん@お腹いっぱい。NGNG
もしかして法線指定してないのでは…?(glNormal)
003412NGNG
勿論してます…
もしかして既にこれが平行光源なのか?と思い、ライトのxyzをいじれる様に
した実行ファイルをICQで知人達に送って平行光源と思うかどうか聞いてみた所
皆スポットでしょとの事。 何故だ…
0035名無しさん@お腹いっぱい。NGNG
glMatirxMode(GL_MODELVIEW);
glLoadIdentity();
glMatirxMode(GL_PROJECTION);
glLightfv(GL_LIGHT0@`GL_POSITION@`v);
003612NGNG
すみませんでした。やはり既に平行光源だった様です(汗 本当にすみません。

XZが0の時、Yだけ-1・1にすると、平行光源では一気に垂直の上向き・下向き
になるのに対して、点光源では発光位置が-1・+1するだけでした。
と確認しても何故か納得出来ない…
0037名無しさん@お腹いっぱい。NGNG
方向
指向性光源:GL_POSITION
位置的光源:GL_SPOT_DIRECTION
003812NGNG
ttp://heikou.webjump.com/01.jpg
識者の方、この画像の光源モード・位置を推察出来ますか?
光源モデルはambient0・diffuse1・specular1です。
何故こうなるのか全く解りません…
003910NGNG
>>14
俺Windowsのプログラム書いたこと無いからわかんないんだけど、
俺の環境(debian-linux)ならunistd.hかな。
Windowsだと違う名前でしょ。
そういうヘルプってないの?MSDNだっけ?
0040名無しさん@お腹いっぱい。NGNG
>38
平行光源と点光源二つかなぁ?。
平行光源に減衰の効果を出すためにフォグを使ってるかと…(平行光源は減衰関係ないんで)
極めて適当ですが。
004140NGNG
同じようなことをしたいのであれば(?)
//点光源だけの場合
GLfloat v[4]={x@`y@`z@`1}; //xyzはカメラの位置
glLightfv(GL_LIGHT0@` GL_POSITION@` v);
glLightf (GL_LIGHT0@`GL_CONSTANT_ATTENUATION @`C); //ライトの減衰=1/(C+L*d+Q*d^2) d=距離
glLightf (GL_LIGHT0@`GL_LINEAR_ATTENUATION   @`L);
glLightf (GL_LIGHT0@`GL_QUADRATIC_ATTENUATION@`Q);
参考にならないかも知れませんが…
004212NGNG
>>40
真正面からの平行光源1個のつもりなんです(汗
やはりどうみても平行光源じゃありませんよね…

平行・点光源共にオブジェクトの0@`0@`0(腰)を中心に、ライトの方向に
出てる部分しか光らないので、全体を照らす事が出来ないんです…
004340NGNG
点光源の場合、カメラ位置に光源配置かないと…
平行光源の場合、カメラ位置からオブジェクトへのベクトルを設定しないと…
004412NGNG
ライトじゃなく法線計算のミスだった様です…穴があったら入りたい…

式修正したらライトは正確に当たる様になったのですが、今度は
フラットになってしまいました(汗 これも法線の問題なのかな
004512NGNG
スムーズシェーディングする際は各頂点毎に頂点の法線を与えなければ
成らないんですね…面の法線与えてました。はい。
もう駄目…鬱出死
0046名無しさん@お腹いっぱい。NGNG
適当なとこが見つからなかったので、便乗で質問します。
GLUTでOpenGLをやってるんですが、モデリングがめんどくさいのです。
何か、メタセコイヤみたいなモデリングソフトのデータを使いたいのですが
いい方法を知りませんか?コンパイラはVC6.0を使ってます。
0047>46NGNG
http://www1.sphere.ne.jp/mizno/metaseq/format.html
楽そうですね…
0048名無しさん@お腹いっぱい。NGNG
OpenInventor 使ったら? ソースも公開されてんだし。
http://oss.sgi.com/projects/inventor/
004946NGNG
レスありがとうです。
とりあえず、拡張子がxのファイルで出力して
座標と面のデータを取り出すことでひとまず解決しました。
0050名無しさん@お腹いっぱい。NGNG
今まで初期化時にListにオブジェクト登録してCallで表示してたんですけど、
何気にCallと登録時の描画関数を置き換えて見た所何故かCallより高速に…
GAはGeFoMXなのですが、こんな事ってあるんでしょうか?
0051名無しさん@お腹いっぱい。NGNG
OpenGLのアクセラレーションがまともなカード情報きぼーん。
ちなみに俺は3dfxです。論外でした。
0052名無しさん@お腹いっぱい。NGNG
VCでGLU1.2のテセレーション(タイリング)を使ったサンプルプログラムは
どっかにないでしょうか?。
探したけれど、GLU1.1のものしかなかった。
ぶしつけな質問で申し訳ありません。
0053名無しさん@お腹いっぱい。NGNG
>51
nVidia
デベロッパー向けページには、OpenGLのサンプルもあるよ。
0054名無しさん@お腹いっぱい。NGNG
あのーつまんないこと聞いちゃうかもしんないけど、
赤本ってOpenGL Programming Guideのことなんでしょうか?
005554NGNG
自己レス。そうみたい。
0056名無しさん@お腹いっぱい。NGNG
>55
なるほど、そうlみたい。
0057名無しサソNGNG
>>50
 自分も気になります。そもそも、OpenGLでGeForceについている
HT&Lが適用できるのは、ディスプレイリストに追加されている物
だけだと思うのですが、本当の所はどうなって居るんでしょう?
005850NGNG
>>57
自分は勝手に、実はOpenGLのディスプレイリストは高速化の為の登録じゃなく、
単に管理の手間を省く為の物 と言う結論に至りました…ぉ
諸々演算しつつ描画する場合は先に登録して置いた方が早いだろうけど、計算済みの
データを羅列するだけならわざわざ登録する必要は無いって事で…

本質的には違うんでしょうけど、現状(GeFoMX)はそんな状態です。
■ このスレッドは過去ログ倉庫に格納されています