1 :
デフォルトの名無しさん:
2 :
デフォルトの名無しさん:05/01/13 19:44:24
3 :
デフォルトの名無しさん:05/01/13 19:44:43
5 :
デフォルトの名無しさん:05/01/13 19:50:41
PS3に採用されて、大幅な開発期間短縮と人員削減を実現する夢のテクノロジー!!
win32の::SwapBuffers()ってVSYNC切れないの?
>>6 WGL_EXT_swap_control を確認してから wglSwapIntervalEXT(0) するだよ。
8 :
デフォルトの名無しさん:05/01/14 17:53:46
すみません、質問です。
同一平面上で、大きい四角の中に小さな四角を描きたいのですが、
大きい四角→小さい四角
の順に描画すると、小さい四角が見えなくなってしまいます。
(ワイヤー状態で見ると2つとも描画されているのですが、
塗りつぶした状態で見ると、大きい四角しか見えません)
逆に、
小さい四角→大きい四角
の順だと、2つの四角が現れるのですが、2つの四角が混ざった
ような状態になります。
(大きい四角:赤、小さい四角:青だとすると、小さい四角が
赤と青の縞々になります)
うまく描画する方法がありましたら、教えていただけないでしょうか。
よろしくお願いします。
大きいドーナッツ型の四角のなかに小さい四角を描画すればいいと思うのれす
>8
大きい四角の中に小さい四角を描いたテクスチャを用意する。
大きい四角形と小さい四角形の代わりに小さい四角形9個を並べて
周りの8個を同じ色で、真ん中だけ違う色で描く。
大きい四角形におにぎりおにぎりちょっとつめて
刻みしょうがにごま塩かけてニンジンさんゴボウさんサクランボさん
シイタケさん筋の通ったふき
四角形 豆腐
三角形 おにぎり
>大きい四角形と小さい四角形の代わりに小さい四角形9個を並べて
>周りの8個を同じ色で、真ん中だけ違う色で描く。
この方法でうまく描画できることを確認しました。
>大きいドーナッツ型の四角のなかに小さい四角を描画する
ドーナッツ型を新たに定義する必要があるので、今回は上記の
小さい四角組み合わせで対応してみます。
>ポリゴンオフセット
説明を見る限り、自分のやりたいことはこれだと思います。
ただ、詳しい資料が手元にないので、まずは勉強してみます。
やみくもに「glPolygonOffset(1.0,1.0)」などと書いてみましたが、
ダメでした。
>大きい四角の中に小さい四角を描いたテクスチャを用意する
四角自体が無地ではない場合があるため、自分のレベルではまだ無理
そうです。実現できれば組み合わせるより描画時間を短縮できそう
なので、今後のために勉強してみます。
大変参考になりました。
どうもありがとうございました。
いろいろ助言ありがとうございます。
結局諦めてstaticな関数にしました。
なんか気持ち悪くなりましたが、機能は実装できたので気にしないことにします。
ありがとうございました。
>>17 > やみくもに「glPolygonOffset(1.0,1.0)」などと書いてみましたが、
> ダメでした。
GL_POLYGON_OFFSET_FILLをenableしてる?
glPolygonOffset(0.0f, 1.0f);
glDisable(GL_POLYGON_OFFSET_FILL);
大きい四角を描画
glEnable(GL_POLYGON_OFFSET_FILL);
小さい四角を描画
glDisable(GL_POLYGON_OFFSET_FILL);
みたいな感じかな。
つ glDisable(GL_DEPTH_TEST)
平行投影によって得られたボリュームレンダリングデータを
透視投影に変更するにはどうすればいいのでしょう?
glOrtho()をglPerspective()に変えただけじゃ今市上手くいかなかったのです。
アドバイスくれたら嬉しいです!
22 :
デフォルトの名無しさん:05/01/15 20:59:43
| .( ( | |\
| ) ) ) | | .|
|________(__| .\|
/― ∧ ∧ ――-\≒
/ ( ) \
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
|______________|
| .( ( | |\
| ) ) ) | | .|
|_ <⌒/ヽ-、___(__| .\|
/― <_/____/-\≒
/ \
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
|______________|
おいおい、風呂の中で寝るなよ。死ぬぞ
浮いているように見えるが
25 :
デフォルトの名無しさん:05/01/15 21:08:09
溺死?
OPENGL
LGNEPO
OL=オフィスレディー
PG=プログラマ
EN=円¥
GP=グランプリ
LO=炉利
炉利ロリなプログラマのオフィスレディーがグランプリで円¥もうけ。
OPENGL
LGNEPO
OL=オフィスレディー
PG=プログラマ
EN=円¥
NE=ね。
GP=グランプリ
LO=炉利
炉利ロリなプログラマのオフィスレディーがグランプリで円¥もうけね。
>>29 香奈のこと。未来の事、そして其れまでの所業。
warata
DIRECTX
XTCERID
DX=デラックス
IT=IT革命
RC=れんこん
EE=ええ、
CR=クリトリス
TI=ティンポ
XD=Xデー
ええ、私のデラックスなティンポはれんこん並み!来たるXデーはIT革命でクリトリス!
MICROSOFT
TFOSORCIM
MT=マイ・ティーチャー
IF=もし、
CO=塩
RS=留守
OO=おお!
SR=ソーラン節
FI=フィンランド
TM=商標
おお!マイ・ティーチャーはフィンランド出身。もし留守だったら商標の塩でソーラン節。
NVIDIA
AIDIVN
NA=ナニ
VI=ビンビン
ID=井戸
DI=土井
IV=イヴ
AN=あん!
あん!土井君!イヴの日は私の井戸をあなたのビンビンなナニで掘って。
ま、まて
おまいら何をしたいんだ?
最近のGって2Dもハードウエアアクセラレートされるの?
LINUXとWindowsで使いたいんだけど
GってポッキーG?
サイボーグGじゃないの?
>21
>glOrtho()をglPerspective()に変えただけじゃ
具体的にどう変えたのか?
>今市上手くいかなかったのです。
「今市上手くいかない」とは、どの程度上手くいったのか?
bmpとかをテクスチャで使いたいんですが、ローダーとしてみなさん何を使ってますか?
Webのチュートリアルでは結構glauxをつかってるみたいなんですが、メモリーリークが
あるから使うべきではない、って書いてあったり。
>>38 >>39 ごめん"L"が抜けた
OpenGLを2Dで使ってる人なんていないのかな?
S・L・D!S・L・D!
自分が作りたいのはMayaのHayper ShadeとかHyper GraphみたいなGUIなんだけど
ああいうのはポリゴンにテクスチャ張ってる訳じゃないですよね?
一度QtのQCanvas使って作ってみたんだけど拡大縮小とかの描画が遅かったんで
OpenGLが使えないかなと思って質問してみたんですが・・・
似たようなGUI作った事のある経験者いませんか?
46 :
デフォルトの名無しさん:05/01/17 18:25:06
>>45 ポリゴンにテクスチャだよ。そうでなきゃ高速な拡大縮小なんてできない。
GPU上からポリゴンとして描いてるGUIはそう珍しくないのでは?
>>43 新しいライブラリかとおもったらtypoかよワロタ
>>43-
ありがとう!
このサイトの
>あと、知らないと絶対に解けない謎として初心者に襲いかかる制約があって、 OpenGL でのテクスチャサイズは
>各辺が 2の n乗でなければならないのです。 例えば 128x128 とか 256x256 とか 512x512 とか。 各辺が 2の
>n乗で無い場合はそのテクスチャは貼られてくれないので要注意♪ ちなみに 2の n乗であれば良いので、256x128
> とかでも大丈夫♪
これ死ぬほどありがたかった。なぜ何個かあるテクスチャのなかで自分で作ったやつはマッシロ?????とか
不思議でたまらんかった。やっぱ本買うかも。
52 :
デフォルトの名無しさん:05/01/17 23:38:50
>>43 おいおい。2^NしばりはglTexImage2Dのヘルプに必ず書いてあるはずだぞ。
非2^NはOpenGL拡張で対応できる。
>>46 >>47 えーそうなんだ・・・
なんか文字列とかよさげに縮小してるから違うんだと思った
サンクスです
54 :
デフォルトの名無しさん:05/01/18 14:40:41
>>53 拡大縮小で文字列が汚くならないよう、文字列だけは別処理で
適宜大きさをあわせて描画してるかもしれない。
FBOキターーーーーーーーー!!
あ、このスレは1.2までだから関係ねーか(ワラ
F・B・O!F・B・O!
しかし、あのウンコPBufferで今までやりくりしてたという事実が驚愕であるな。つーかOpenGL2.0が
完全にフィーチャーされたドライバってもうでてるんかい?
59 :
デフォルトの名無しさん:05/01/21 22:22:08
保存
Q. コンペアエラーが出ます。なんとかなりませんか
A. あたしゃそういう難しいことはよくわからないんですけど
故郷チャージャー村ではターボチャージャーの生産が本番を迎えています。
最近はスーパーチャージャーの生産はあまりないですね。
こんペアで------------っす
60 :
デフォルトの名無しさん:05/01/22 00:36:21
>58
QuadroやWildCatとかはOpenGL2.0対応を謡っているのに、GeForceやRadeonのドライバは最新版でも1.5どまり。
前々から不思議だったんだが、これは何故なんだろうね?
>60
下手にGeForceにOpenGLの最新対応をさせてしまったら
CG制作会社なんかもそっちを買ってしまう
個人利用には対して需要のないOpenGL対応をGeForceから削ってしまえば
OpenGL対応製品の欲しい会社なんかは高くても買ってくれる
そんなところだろ、どうせ
>61は高額CGソフトのプレビューとか製作中の画面表示がOpenGLだからってことね
あと大学なんかもOpenGLが中心だからわざと高額にしても文句いわずに買ってくれるんだろうね
NURBSを使って曲面の表現をしたいと思って色々なHPを見て回ったんですが、
制御点が4×4×3の例しか置いてなくて、困っています。
旗や水面のようなあくまでも平面が揺れるってな物を作りたいので8×8、
贅沢言えば16×16くらいの制御点をぐりぐり動かしてみたいのですが、
gluNurbSurface関数の設定の仕方が全く見えてきません。
gluNurbsSurface(nurb, 8, knots, 8, knots,
4 * 3, 3, &seigyo[0][0][0],4, 4, GL_MAP2_VERTEX_3);
4×4→8×8に設定するには、上記のどこを直せば良いのでしょうか。
ご存知のかた教えて下さい〜
>64
ありがとー
早速やってみます
浮動小数点バッファが使いたいです・・・
不動明王と浮動明王って
聞こえが同じなのに意味が全然違うよね。
>>67 よくそんな事が思いつくもんだ。
glFudoumyouohfv();
つーか、浮動明王ってなんだよ。w
すげぇ動きまくってんの
つーかコンパでも浮いてるだろ。
コンパイル…コンパで浮く事
gluScaleImageとglDrawPixelsを一気にやる方法があったら教えてください。
拡大縮小しつつフレームバッファに展開したいんです。
>>73 いっそのことglDrawPixelsやめてテクスチャ付きポリゴンにする。
うーん、普通はテクスチャなんですかね。
うーん。
海外から来たプログラマと話してる最中、
奴が「不動ショウスウ天って何の仏だ」とか言った。
浮動小数点を知らないで、なんでそんな余計な事を知ってるんだ。
という話を思い出した。
>>76 漏れもアメリカの4年大で教育受けたので
日本語の文章読んでるとき
引数→インスー
秀丸→シューマル
と読んでいた。いまだにそう読んじゃう。あと「関数」って言われると高校時代の
数学で出てきた奴が先に頭に浮かんでしまう。
それと
Hoge?????
アンケン????
とか一瞬戸惑う。もう慣れたけど。
>>77 ワロヌ
質問です。
空間上のある点が画面に投影されたときの座標かを計算するにはどうしたらいいんでしょうか?
82 :
デフォルトの名無しさん:05/01/23 17:32:22
>>75 glDrawPixelsはクソ遅いので使わないほうがいい。
テクスチャにすべし。
>>79 面白そうだけど、土地がアレだし。
冬場は極寒だし車もってないとどこに行くにも遠いし。
でも「東京から来た」ってだけで女にモテるらしいぞ。
短大かよ
OpenGLを深いところまでやっている大学があったら見てみたいよw
>>83>>84 ワクホクは今は短大じゃないよ。
>>85>>86 OpenGLの深いところとか高度な使い方とか、教える方は
それなりに知ってるかもしれんが、教わる側の学生の
レベルも高くないと講義では出てこないだろうな。
Cube表示してMatrixスタックで親子関係の表現で良かった
OpenGL1.1な時代と、シェーダ前提なOpenGL1.5や2.0の時代では
必要知識の量が倍以上違う。習う側は大変だねー
教える側はもっと大変だねー
glGenTexturesは糞
授業でOpenGLを使って3Dの簡単な工学部に関係するものを作れという課題が
出たんですけど、どなたかすごいかんたんな車とか飛行機の動いてるプログラム
例を教えてもらえないでしょうか?
まずは自力で出来る範囲からスタート。
>>90 図書室などにOpenGLの本無いの?
クランクを動かすなんていい教材と思うよ
PersonalJava(またはJ2ME Personal Profile)と
OpenGL ESの組み合わせはかなり(・∀・)イイ!とおもうんだが
早く実装でないかなぁ・・・
96 :
デフォルトの名無しさん:05/01/25 19:50:21
3Dプログラミングの話題ですみません。ボーンの操作を勉強したいのですが、
良い本などありましたら教えて下さい。
>>96 魚焼いて身を食べる。
残った骨でお勉強。
100 :
96:05/01/26 00:17:37
>>98 >>99 なるほど、早速アマゾソで注文してみます。
って、真面目に悩んでいるのですが・・・
このスレはこんな感じです
>>100 まじめな話どの辺りの事がやりたいの?
単にボーン変形の基礎を試したいだけなら2つとか3つのボーンと重みだけで実験してみれば良いだけだからなぁ
ボーンをつかったモデリングのコツみたいなアーティスト側の話だとまた別だし。
自分はWebサイトだけですんじゃったから書籍と言われてもピンとこないよ。
ボーンデジタルの本がいいんじゃないか?
>>103 あれ高いからなぁ、ボーン変形だけの為に買うんじゃ泣けるぞ。
英語読めるなら原書の方が安いし。
英語の勉強も兼ねて原書を買うべき。
106 :
あき:05/01/26 18:12:32
質問です。
デプスバッファーで
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA|GLUT_DEPTH);
を入れたのに奥のが手前に見えるのはなぜですか?
金垂ムロの設定を忘れてるからだ。
108 :
あき:05/01/26 18:21:20
金垂ムロってなんですか…?
110 :
あき:05/01/26 19:06:12
#include <GL/glut.h>
#include <stdlib.h>
#include<stdio.h>
static int speed = 0;
static double spinAngle=0.0;
GLfloat light0pos[] = { 0.0, 0.0, 0.0, 1.0 };
GLfloat yellow[] = { 0.9, 0.9, 0.1, 1.0 };
void ModelDraw(void)
{
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glPushMatrix();
glColor3d(0.9,0.9,0.1);
glutSolidSphere(1.0, 20, 16); /* draw sun */
glRotated (spinAngle + speed, 0.0, 1.0, 0.0);
glColor3d(0.0,0.0,1.0);
glTranslatef (3.0, 0.0, 0.0);
glutSolidCone(0.2,1.0,10.0,5.0); /* draw rocket */
glPopMatrix();
glutSwapBuffers();
}
111 :
あき:05/01/26 19:07:28
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
glLoadIdentity();
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_DIFFUSE, yellow);
}
void ModelSpin(void)
{
spinAngle += -5.0;
if(spinAngle>360.0) spinAngle -= 360.0;
ModelDraw();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (0.0, 0.0, -10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glLightfv(GL_LIGHT0, GL_POSITION, light0pos);
}
112 :
あき:05/01/26 19:10:20
void keyboard (unsigned char key, int x, int y)
{
switch (key) {
case 'u':
speed = (speed - 10) % 360;
glutPostRedisplay();
break;
case 'd':
speed = (speed + 1) % 360;
glutPostRedisplay();
break;
case 27:
exit(0);
break;
default:
break;
}
}
113 :
あき:05/01/26 19:10:50
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA|GLUT_DEPTH);
glutCreateWindow("0341132 seisannkou Akihiko Mohri");
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutDisplayFunc(ModelDraw);
glutIdleFunc(ModelSpin);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}です。あと、太陽を光らせたいのですけど…。できない。。
114 :
デフォルトの名無しさん:05/01/26 19:29:09
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
これだと奥行き足りてないんじゃねーの?
115 :
あき:05/01/26 19:46:40
変えてもできませんでした。
なんでもそうだが、
問題は、単体での練習と同じことができるのかということ。
ボーン数が1の場合に限って、上手いこと習得しても、
それが50や150くらいになってくると
1つと同じように、というわけにはいかない。
式は同じ、単にボーン数を増やせばいいっていうことなら
誰もがラクに学べるだろうがが
1つのときと2つのときでは式が全然違う、
そんなんだから混乱するわけだ
だからといって「詳しい人」に聞けば解決するものでもない
今「できる」と言う人たちは例外なく、自分でその式を考えたわけではない。
あるところのサンプルソースを見て、テキトーに自分の作りたいものにあわせて
改変しているだけなので、概念は全然頭に入っていないし、
「ソースの意味」は理解できるが「なぜそうなるのか」はわかっていないからだ。
単に暗記しているだけと言える。
そんな、九九やあるまいし
丸暗記だから、
・しばらくやらないでいると忘れる
・HDDがクラッシュした、ソースなくした、もう同じものは作れない
このパターン
>113
init()呼んでないじゃないか。
>>113 確かにinit()が呼ばれてないような(ノ∀`)
glutMainLoop()の前にinit()を呼んだら青い飛行物体がちゃんと黄色い太陽の後ろに隠れたぞ。
Windows、VC6で確認。
121 :
あき:05/01/27 15:03:58
おぉ〜できました。ありがとうございました。あとは太陽光らせるだけだ・・・。
光ってるはずなんだけどな〜。
>>121 光源が有効になってない。
ロケットを描く前に
glEnable(GL_LIGHTING)
太陽を描く前に
glDisable(GL_LIGHTING)
とするとそれらしくなるよ。
124 :
デフォルトの名無しさん:05/01/30 08:09:42
マウスのボタン押したときだけでなく、何もしてないときにマウスの座標を得る手段はありますか?
マウスポインタについていくような動きをさせたいのですが・・・
そこでSDLですよ
ていうかOpenGLって何を買うとかダウンロードしてくれば始められるのですか。
DirectXならSDKやCならBorlandコンパイラやVC++ってのはわかるのですが
まあライブラリだろーなーと思って探しましたが
OpenGLの構文を解説するサイトはヒットしても
始めるにあたって何が必要なのかを解説しているところはありませんでした
://www.berkelium.com/OpenGL/sgi-download.html
>>127 128 get
むしろ検索してヒットさせない方が難しい気が
>>127 ふつーにWindowsアプリを作れる環境ならOpenGL使えるよ
131 :
デフォルトの名無しさん:05/01/30 16:18:13
Unix板から引っ越してきました.
X11 の GLX 何ですが XFree86-4.x と X.Org-6.7.x とか
X.Org-6.8.1 の間で, 何か仕様が変わっていますか?
glXIntro のマニュアルページに書いてあるサンプルプログラムが,
XFree86 では期待通りに動きますが, X.Org だと期待通りの動作を
しません. X.Org の方はレンダリングしてないように見える.
X.Org でも, 結構な量の GLX アプリが動いてるんですけど, GL に
関してはど素人なもので何が違ってるのか和漢ないんですけど.
>>127 win系ならほとんどのC/C++コンパイラに標準でついてくる。(VC++やBCC、関係ないけどDelphiも)
GLUTを使うなら追加で入れる必要があるけど。
余裕があれば↓この手のツールがあるともっと楽しめる(これは30日制限の体験版)
gDEBugger - OpenGL Debugger - Realize your OpenGL potential...
http://www.gremedy.com/
133 :
デフォルトの名無しさん:05/01/30 17:27:29
最新のOpenGLを使いたいんですが
どれを落としてきたらいいんですか?
キター
://www.berkelium.com/OpenGL/sgi-download.html
>>134 135 get
://www.berkelium.com/OpenGL/sgi-download.html
これってなんですか?
クリックしても飛ばないんですけど??
カメラの位置変更する時に
gluLookAt
を使えばいいのがわかったんですが
gluLookAt(x, 0.0, 0.0, x, 0.0, 0.0, 0.0, 1.0, 0.0);
とかにしたんだけど、思い通りにいかないんですが。
どうなってるんでしょうか?
最初の3つの引数の所に視点を
次の3つの引数の所に注目点を
最後の3つの引数に上を示すベクトルをってなってるらしいんですが。
どーもカメラの移動量っぽい動作になってます。
gluLookAt(0.0, 0.0, 0.01, 0.0, 0.0, -0.01, 0.0, 1.0, 0.0);
にしたら、カメラが段々遠ざかってく感じになりました。
カメラの絶対位置を指定できないんでしょうか?
138 :
デフォルトの名無しさん:05/01/30 21:53:03
gluLookAt は、glTranslate や glRotate なんかと同じ扱いなので、
どこでそれをしてるかが問題。
gluLookAtの中の人の気持ちになって考えればわかるはず。w
まず行列とか数学から勉強だな。その辺の基礎ができない奴にOpenGLは無理。
141 :
124:05/01/31 01:10:46
まさにそのもののglutPassiveMotionFuncってのがありました。
お騒がせしました。ありがとうございます。
>>138 ということはglPushMatrixとPopではさまなければ他にも影響が出るということかな?
聞くよりコード書いたほうが早いね。ごめん
143 :
デフォルトの名無しさん:05/01/31 02:41:35
>>137 glLoadIdentityせずに毎フレームgluLookAtをしてるんだろ?
なるほど。
そこら辺全然理解できてませんでした。
基礎をもっと詰め込んできます
>>143 なるほど、マトリックスを毎回初期化(?)するんですね要は
146 :
デフォルトの名無しさん:05/01/31 23:22:39
>>145 gluLookAtってのは、「視野変換行列を、現在の行列に対してかけ算する」操作を
行うわけよ。OpenGLは状態保存だから前回のフレーム描画した時の行列が残ってるわけね。
gluLookAtは書いてあっても
そういう仕様って規格書でもちゃんと書いてないものもあったり
gluLookAtしばらく触らないでいると
設定変えたとき必ず逆方向に注目してる。
漏れのデフォルトの感覚なんだろうな。
149 :
デフォルトの名無しさん:05/02/01 14:33:57
>>147 規格書には書いてあるだろ。
ちなみにVCのヘルプにも
「The matrix generated by gluLookAt postmultiplies the current matrix.」
と書いてある。
OpenGLのMatrixStackの仕様はウンコだ。時代遅れもいいところ。
あれは「使わない」のが最善の選択肢。
WindowsならDirectXのマトリクス計算を使うのが一番いいよ。
3dsやmd3といったファイルを読み込み,それらの制御点を
操作することで曲面の形状を変化させることはできるのでしょうか?
君の実力次第。
153 :
デフォルトの名無しさん:05/02/02 11:34:31
>>150 PushMatrix/PopMatrixを積極的に使う理由はないね。
常にLoadIdentityで初期化しながら使う。
>>151 できる/できないという質問なら、回答は「できる」
154 :
デフォルトの名無しさん:05/02/02 14:33:34
皆さんはやや複雑な3D モデルを作ろうとした場合どのような環境を使いますか?
OpenGLのC++のコードで出力してくれるモデラーのお勧めなどありますでしょうか。
155 :
デフォルトの名無しさん:05/02/02 14:42:14
>>154 モデラーからC++コードを出力するなんてアホなことはしない。
OBJなりMQOなり汎用なフォーマットで出力して、そのフォーマット用の
ローダライブラリを探すなり自作して読み込む。
NURBSモデルを表示させたいのですが、
IGES形式を読み込んでOpenglのc++で表示する
というローダはありますか?
>>155 ありがとうございます。
ライブラリを自作するという選択もあるんですね。すごい!
知識の乏しさゆえ自作は困難なので扱いやすいローダを探してがんばってみます。
>154
GLのコードをはくなんてあほなことはしないけどお勧めはメタセコ
フリー版もあるし、出力形式のMQOはバイナリじゃなくてテキストだから
比較的楽にローダ作れると思う
まぁ裏技として出力したMQOファイルからVertexやらFaceやらをコピペして
手動なりスクリプトなりで処理して、ソースのテーブルに貼り付けるというのもある
フリーじゃなくても良いんだけど、この3Dモデリングツールとこのローダーが一番使いやすい!
ってあります?
最近gmaxの本を良く見るようになったけど、コレってどんなもんですか。
160 :
デフォルトの名無しさん:05/02/03 18:27:33
>>159 gmaxはフリー版のの3ds max。アメリカだとmaxユーザーも多いし
ゲーム業界でもモデリングやアニメーションでよく使われている。
モデリングツールとローダの組み合わせでいえば、Lightwaveかな。
いまさらLWって気もするけどね。相対的に高くなっちゃったし。
安くなったXSI Foundationや、高いけどMAYAが一番いいと思う。
エクスポータとローダは自作。
3Dモデリングツールもローダも全部自作だな
162 :
デフォルトの名無しさん:05/02/03 20:12:31
質問なんですが、OpenGLでCg使ってるんですが。
RADEON系ではVP30やFP30といったnVidia系のプロファイルって使えないですよね。
かといって、RADEON用のプロファイルとかもないし・・・。
ARBVP1/ARBFP1プロファイルのみだと、果たしてRADEONの最新機能が引き出せるのかどうか少し気になります。
CgでRADEONの最新機能使いたいならDirectXでやれってことなんでしょうか?
>>162 RADEONにはARBVP1/ARBFP1程度の機能しかないよ
NURBSサーフェイスで出力してくれるファイル形式って何があるの?
mqo
サンクス
自分でも調べたが,3dsとRTGって形式もあてはまる?
169 :
デフォルトの名無しさん:05/02/04 13:42:23
>>164 いきなりMAYA買うとはw
MAYAからOBJで吐き出せば、OBJくらい読むライブラリはどっかに
あるだろ。OBJ EXPORTプラグインはMAYA標準だ。
www.highend3d.com に行けば、無料で使える各種プラグインが
アップされてるので、そういうのを活用する手もある。
170 :
164:05/02/04 14:21:01
colladaって広まってるのかね?
標準はこれだ!ってのがいっこできると確かに便利なんだが。
これから広まるでしょ。PSPとかの開発もCOLLADAになっていくようだし
OpenGLの委員会もCOLLADAのサポートの検討をしていると聞くし
なにより現在Maya、XSIなどのプラグインもある。
Maya、XSI間のデータ受け渡しでデザイナが先に使い出すかもしれんし。
あとPSPで使えるようになるならPS3ももちろん使えるって事だしね。
ついでに誰かDirectXのCOLLADA用メッシュクラス用意してくれんかなぁ。
暇つぶしにcolladaローダ作ろっと
175 :
デフォルトの名無しさん:05/02/05 01:16:18
ちょとお伺いしますが、WindowsでOpenGLを使う場合に使用可能な
OpenGLのバージョンをチェックする方法はありますか?
具体的にはOpenGL2.0対応でGL_ARB_texture_non_power_of_twoが
使用可能かどうか調べたいのですが。
177 :
デフォルトの名無しさん:05/02/05 02:00:42
>>175 glGetStringを使ってARBなど拡張を調べる。
glGetString GL_EXTENSIONSでググれ。
COLLADA読むのってTinyXMLとか綺麗なライブラリで読みたいんだけど
速度考えるとソース汚いexpatしか無いんだろうか。
Parsifalもソース汚いし使いにくそうだなぁ。
メタセコ用のCOLLADAプラグインとか作ったら金払って買ってやってもいい。
181 :
デフォルトの名無しさん:05/02/05 20:29:25
メチャセコッ
(やたらにセコい)
( ´,_ゝ`)プッ
(´・ω・`)ショボーン
( ´・ ,_ ・`)プッ
mac + XCode (or Project Builder) + C++でOpenGLできる?
前ちょこっとProject Builder + GLUTでやったときはg++でコンパイルする方法が分からなかったんだけど。。。
c++でcocoaは無理?
メタセコなんぞヒエラルキー最下層の愚民が使う低俗なツールだ。死ね。
お前が死ね
ふつーハイアラーキ
プ
リッ
キュアッ
マーックーッスハァーッ
プッハッハハハッハハ
メ タ セ コ 。
アリエナーイ
素直に3dsmax使えや。
つーか、そもそもローダなんてのは万人が書いてもどれも同じ。書くだけ無駄。
そこらに腐るほど転がってる3dsローダ拾って来いと。重要なのはローダじゃねーんだ。
重要なのは心なんだよ
わかったかオメーら
はいわかりまわらすい。
何か最近新しいネタとかないよね。GDCまでしばらくお預けか・・・
つまらん。
>>180 取り合えず手元にザックリ作ったのがあるけど欲しい?公開するとなるとすげー手間が
かかるんであんまり気が進まないんだけどさ。今は.NetFramework2.0が入ってないと動か
ないと言うとってもアレな状況なのよね。
取り合えず、ストリップ最適化辺りの実装が凄く面倒くさい。
オープングーグルなんですけど、
途中で送信してしまいました。
オープングーグルなんですけど、オー
マー
んー?
まー
んー
こー
213 :
デフォルトの名無しさん:05/02/10 00:33:14
まー
>取り合えず、ストリップ最適化辺りの実装が凄く面倒くさい。
ストリップなんてNvTriStrip使えばいいじゃん。
今時自前で処理するやつなんているのか?
この広い世の中だ。ゼロということはなかろう。
216 :
デフォルトの名無しさん:05/02/10 19:10:12
すいません質問なんですが、
複数の図形に別々の動作(拡大、縮小など)をさせる場合、
プログラムの順番はどのように設定したらいいのでしょうか?
問いが悪いのでお答えできません。
フローチャートでも書いて考えを整理してください。
そうだな。スマンがOpenGLと関係あるとはいえないな。
そういう時は自分の考えも一緒に書くもんだ。
221 :
デフォルトの名無しさん:05/02/11 14:30:57
文字を表示するのって
printfをvoid(display)内に入れればいいの?
yes
OpenGLについてのとんでもない情報を聞いてしまったのだが・・・
教えてあげないよ、ジャン!
サクサク三角ポリンキー、ジャン!
コ・イ・ケ・ヤ♪
年齢がばれる?
25〜30?
>226
教えてあげないよ。ジャン♪
サブマリン特許がどうかしたのか?
趣味グラマの俺には関係ないなああああァーッ
さすがに長いな。
OpenMLって堂ですか?
235 :
デフォルトの名無しさん:05/02/13 02:01:59
OpenMLとOpenNLか。。。打ち間違いしやすいのは確かだが。
これもベイズ理論でエラー訂正してくれるようになるのかね。
OpenCFNM
OpenMAXとかどうなのよ?
238 :
デフォルトの名無しさん:05/02/13 09:52:44
質問です。
例えばvoid cube(void)などで作成した箱を二つ配置して、
同じように拡大したいのですが、
1つめをまず(0.0,0.0,0.0)に配置して、
二つ目を(-2.0,0.0,0.0)に配置して、
glScaledで拡大させると、
二つ目の箱が移動してしまいます。
どうしたらいいでしょうか?
240 :
デフォルトの名無しさん:05/02/13 10:06:29
>239
レスありがとうございます。
あの、配置してからマウス入力で
二つ同時に動かしたいんです。
241 :
240:05/02/13 10:19:17
すいません解決しました!
ありがとうございました。
242 :
デフォルトの名無しさん:05/02/13 10:28:51
質問なのですが、
void display(void)内で
static int r=1.0;
cube();
if (r++>= 6.0) r = 6.0;
のようにcubeを拡大させたのですが、
他の図形を絵画してその図形に別の動きをさせるには
どうしたらいいですか?
お願いします。
244 :
デフォルトの名無しさん:05/02/13 21:28:46
ほんで、てめえらは
その自慢のオーポンGLとやらで何を作ったのですか?
嫁
空気嫁
ダッチワイフの事か
OpenGLを勉強すれば彼女できますか?
>242
pushやらpopやら
openGLの画面をpptに使いたいんだが
どうしたらいいの・・・?おせーて。
253 :
デフォルトの名無しさん:05/02/14 04:31:16
>252
すまそ
パワーポイントのことでつ
Alt+プリントスクリーンも知らないのか?
キャプチャキーを作ればええじゃないか
こいつがいってんのは動画として取り込みたいんじゃないか?
Frapsとか使ってきゃぷれ。
30代で彼女もいないヲタ臭いプログラマー(特にDirectX系に顕著)って生きてる価値あんの?
やってる事つったら、海の向こうの技術を必死こいて後追いしてるだけだし。
その年で彼女もおらず、いつまでも鬼ごっこ遊びか。おめでてーな。
デカイつらしてる年寄りは業界のガン細胞。排斥して然るべき。
いくら技術の蓄積があろうが、そんなもんは既に時代遅れ。
知識やら技術ばっか溜め込んで、それを自慢してるフシのある年寄りは逝って良し。
258 :
デフォルトの名無しさん:05/02/14 18:06:12
pptとは、スタンリー・キューブリックの映画
「フルメタル・ジャケット」に出てくる言葉。
ママとパパはベッドでゴロゴロ
ママが寝転がってこう言った
「Ah Give me Some! (Ah Give me Some!)」
「ppt! (ppt!)」
>>257 お前が排斥する側の先頭に立って陣頭指揮してくれ。
gluLookAtで視点の移動してるんですが、
視点を遠くにすると一部が隠れたりしてしまいます。
どうしたらいいんでしょう?
263 :
デフォルトの名無しさん:05/02/15 02:00:18
>261
あ、錐台ですか!
できました!
ありがとうございました!
>>259 こんなところで頭の悪い愚痴こぼしてるような奴は駄目人間に決まってんだろ
こんなところの住人乙!
OpenGL + Cg で、テクスチャへの描画およびその内容を用いた描画の実験をしています。
1.pbufferへの描画とその内容の画面への描画ができました。
2.Cgを用いての画面への描画ができました。
3.Cgを用いてpbufferへ描画を行い、その内容を画面に描画しようとしたらできませんでした。
3.を実現するには、どうプログラムを組めばよいのでしょうか。
単純に、
・pbufferを作ってwglMakeCurrentで描画先をpbufferへ
・Cgで描画
・wglMakeCurrentで描画先を画面へ
・wglBindTexImageARBでpbufferの内容をテクスチャに
・描画
でできるかと思ったんですが。
次レスに、実験で使ったプログラムの概要を書いておきます。
どこがおかしいのかわかる方がいましたら、是非ともアドバイスをお願いします。
// Ggテクスチャレンダリングの設定
cgGLSetTextureParameter(cgGetNamedParameter(fragmentProgram, "texture0"), g_hTex[0]);
cgGLBindProgram(fragmentProgram);
cgGLEnableProfile(fragmentProfile);
cgGLEnableTextureParameter(cgGetNamedParameter(fragmentProgram, "texture1"));
// pbufferへの描画準備(pbufferは事前に作ってある)
wglReleaseTexImageARB(pbuffer.hpbuffer, WGL_FRONT_LEFT_ARB);
wglMakeCurrent( pbuffer.hdc, pbuffer.hglrc);
// Cgを用いた描画
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glBegin / glEnd
glDisable(GL_TEXTURE_2D);
// Cg終了
cgGLDisableTextureParameter(cgGetNamedParameter(fragmentProgram, "texture1"));
cgGLDisableProfile(fragmentProfile);
// pbufferから画面への描画設定
wglMakeCurrent( hdc, hglrc);
wglBindTexImageARB(pbuffer.hpbuffer, WGL_FRONT_LEFT_ARB);
// 描画
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glTexParameterf(...);
glBegin / glEnd
glDisable(GL_TEXTURE_2D);
一応、developer.nvidia.comの資料をちゃんと見てやっているはずなんですけどね。
たぶんCgを使うのが間違い。GLSLを使え。
はい
270 :
デフォルトの名無しさん:05/02/19 23:44:25
>>267 Cg SDK にpbuf サンプルがあったような。
271 :
266-267:05/02/21 21:54:18
>>268 GLSLの方がいいですか?
どうもOpenGL系でシェーダとかを弄る場合、何を使うのがベストなのか良くわからないんですが、どうなんでしょう?
>>270 すいませんが、置いてある場所がわかりましたら教えていただけると助かります。
一応、webとSDKの中身をざっと見ては見ましたが、それらしき物は見つけられていません。pbufのサンプルなどは見つけたんですが、シェーダと組み合わせたものが見つからなくて…。
272 :
266-267:05/02/21 22:24:27
2chの先生方にお聞きしたいんですが、今からGL系のシェーダを弄るならどういう環境が良いのでしょうか?
- OpenGL1.x+Cg
- OpenGL1.x+GLSL
- OpenGL2.x+GLSL
- ?
私は過去に少し触ったことがあったという理由で一番上を使っているんですが。
ちなみに、用途は静止画でも動画でもなくGPUコンピューティング。テクスチャの読み書きの速度と実装容易性、シェーダ言語の良さ(演算精度、動作速度、etc)重視でしょうか。
…って、あれ?OpenGL2.0ってまだspecificationがDLできるようになっただけ、ドキュメントがあるだけで開発環境は一般に公開されてないんでしたっけ?
脳みそ混乱中sage
「GPUコンピューティング」って用語使うとだいたい8割方、素性がバレるよ。
KO?
276 :
デフォルトの名無しさん:05/02/22 00:10:27
まあ普通GPGPUって言うだろうし。
現状、OpenGL1.5+GLSLしか選択肢ないんじゃないの?
>>187 Panther + Xcode(gcc)でやってるけど出来るよ。
プロジェクトにOpenGL Frameworkを追加して、
新規ソースをC++に指定して
#include <OpenGL/gl.h>
#include <OpenGL/OpenGL.h>
ってな感じ。
278 :
デフォルトの名無しさん:05/02/22 02:30:31
あのなお前ら、これからの時代は固定パイプラインが復権するのはもはや定説となっているわけだが。
はい
283 :
デフォルトの名無しさん:05/02/22 22:30:06
>>279の説を考えてみた。以下がその仮説だ。
シェーダ全盛になりつつあるが、実際のところシェーダを書ける
香具師は少ない。しかし必須シェーダというのは種類が限定される。
いくつかのシェーダは固定機能として実装してしまえば、シェーダ
プログラマが居なくても対応できるようになる。こうして、
固定機能が復権する・・・と。
>>281 オレは中濃ソースが好きだぜ。
284 :
デフォルトの名無しさん:05/02/22 23:34:48
1.5 + ARB + GLSL
1から10まで完全に2.0でなくてもいいわけだし
結局は「光モノ」でDirectX9相当になればいいのだろ
ξ _ ヽ
 ̄ ├-┤
/ ̄ ̄ ̄\)〆 |
| \ |
‐∩∩―┐ ||
|・ ・ | |│ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
┗ ^ ┛ | | | < シェーダ!!!
/777^l | || \
) ̄ ̄_ノ__| lヽl|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,―  ̄ ̄_η_|/V^ |
l  ̄ ̄|_Ξ)/ |
`‐―┬┘\/ |
| | ⊂ヽ
| 〇 | ⊂ヽ ∧__∧ |
| | ∧ ∧| (´∀` )|
|__∧___| (゚Д゚ )| (⊃ _ノ
| | | ∩ (⊃ / \二二)
| |__|_ __ ∫ ) | | (__)
| \ ̄ ノ ヽ二)
`―┬‐―┬‐┘ ̄ ∪
/ /
/ /
/ /
,〜^⌒\__/
「今までは、GPUベンダはシェーダセントリックなアーキテクチャを推し進めてきた。
だが近年、これによって演算器はシェーダでより多くのサイクルタイムを費やすようになったため
複雑な処理では1パイプあたりのスループットが極端に低下するという問題が深刻化している。」(情報筋)
また、ATI ResearchのBill Licea-Kane氏は次のように語る。
「シェーダを用いれば、確かに独創的で革新的なヴィジュアルエフェクトを作り出すことが出来きます。
しかしR&Dの分野はともかくとして、その他の分野では使用される技術が限定されていきているのも事実です。
実際、我々とパートナーシップを結んでいる企業の多くは、最新のVPUをフルに活用するシェーダよりも
より幅広いプラトフォームで動作する汎用的な技術を望んでいます。」
そして、OpenGL ARBのコントリビュータを勤めるNVIDIAのNorbert Juffa氏は言う。
「現在では、もはやパーピクセルのフォンシェーディングやバンプマッピングは当たり前だ。
だが、開発者はそれを実現するためにわざわざシェーダを書かなくてはならない。
そのため、今後は汎用的なシェーダ技術を固定パイプラインで実装し、効率化するのが一般的になるだろう。
つまり、我々が取り組んでいることはglShadeModel(GL_PHONG);だと思っていい。」
ま、そっちのほうが楽でいいわな。
ボタン一つでバーチャファイターの必殺コンボが出る=固定パイプライン
とすれば、お気軽だが面白くないかも
ま、ネタなわけだが。
2ヶ月以上も前の話じゃないか…なんで今ごろ。
要するにシェーダー作れるようになっても
頻繁に使われるのはごく一部の機能なんだから
そういうのは最初から実装しておこうぜってことか?
どなたかCOLLADA2.0のViewerのコンパイルできた方いますか?
ドキュメントを見ながらあれこれやってみたんですがもう分けわかんないです。
面と頂点とライン表示だけなら
いつの記事出してんだよアホンダラ
すみません
どういたしまして
いえいえこちらこそ宜しくお願いいたます
Σ(゚Д゚;)
早くJSR-231とJSR-239の実装でないかな〜
JSR-231とJOGLって違うの?
もうこんな時間か。
目覚ましブラック
GDCマダー?
307 :
デフォルトの名無しさん:05/03/08 01:59:21
GLUTで同時キー入力判定できるん?
つ[SDL]
GLUTのドキュメント見たけどSDLなんて関数なかったよ・・・
つ[練炭]
あったかーい
ああ、なんだか意識がだんだんよ薄れていくy
そんなもの使うからだ。寒いときはこっちにしておけ。
つ[ω]
(´・ω・`)
315 :
デフォルトの名無しさん:05/03/08 16:47:56
│ _、_
│ ヽ( ,_ノ`)ノ 残念、それは私のおいなりさんだ
│ へノ /
└→ ω ノ
>
_、_
ヽ( ,_ノ`)ノ 合体
へノ /
(´・ω・`)
>
318 :
デフォルトの名無しさん:05/03/09 01:55:47
ガクガクブルブル
ヽ(´・ω・`)ノ !!??
へノ_、_ /
( ,_ノ`)
>
あのうちょっとすみません。OpenGLで太い線を描画するには
どうすればよいのでしょうか。太さを指定して線を引きたいです。
1ドットずつずらして描画
>>320 glLineWidth
つーかこんなことも聞かないとわからないような奴には
何も作れない気がするんだが。
ポリゴンで描けよ。
そういうことを聞いてたの?
すいません。これからはもっと調べてから書き込みます
ありがとうございました
>>322 せっかく釣り糸垂らしてたのに・・・orz
あのうちょっとすみません。OpenGLで太い線を描画するには
どうすればよいのでしょうか。太さを指定して肉棒を描きたいです。
1ドットずつずらして描画
>>328 glLineWidth
つーかこんなことも聞かないとわからないような奴には
何も作れない気がするんだが。
ポリゴンで描けよ。
そういうことを聞いてたの?
すいません。これからはもっと調べてから書き込みます
ありがとうございました
すいません。これからはもっと鍛えてから書き込みます
ありがとうございました
あのうちょっとすみません。OpenGLで太い肉棒を作成するには
どうすればよいのでしょうか。太さを指定して肉棒をカキきたいです。
お湯と氷水に交互に浸す
>334
ヨヒンビン摂りながらジェルキング
面倒ならサイズアップデバイスを使用
つーかこんなことも聞かないとわからないような奴には
増大なんて出来ない気がするんだが。
>>336 glutYohimbineとかglSizeupといった関数を探してみたのですが見つかりません。
具体的なコード例を示して頂けませんでしょうか?
glutDankonを使ってたらglutDaikonに変えてみ。
Colladaの日本人向けサイトまだぁ?
お前には教えてやんねー
RenderMonkeyじゃないのかよ!
ま、俺はPS3なんぞ関係ねーからどーでもええ。
345 :
デフォルトの名無しさん:05/03/11 05:56:38
GDCでコラダのセッション今やってる。
盛り上がってきてるね。
>342
迷惑な話だ
質問。
glutでダブルバッファしてるのに、ちらつくのはどういう場合ですか。
1500ポリゴン位のモデルを表示してます。
idlefuncでglutPostRedisplayをやってるんだけど、問題あるかな?
348 :
347:05/03/11 14:52:23
glFlush/glFinishは両方いらんのちゃうかな
試してないから違ったらごめんちゃい
>348
ちゃんとオブジェクト指向で書こうよ
だからよぉ…叩きたいときはネタ持って来いっつってんだろうが
何度も言わせんなよ無能新参
354 :
デフォルトの名無しさん:05/03/11 15:58:28
glFlushもglFinishも、キューの内容を送るだけだから
ちらつきの原因にはならないよ。ソース見てないけど、
たぶん君のソースに間違いがある。しかも自分が
「ここがおかしいんじゃないかなあ」と思ってる場所とは
違うところに。
>>349 それがないと部分的にしか描画されなくて、よくわかりませんが。
>>352 MQO読み込みの部分は突っ込みなしで。(汗
>>354 間違いですか。うーんどこだろう。(汗
gl触ってまだ一週間とかそこらなのですが、結構厳しいですね。
レスthx。
とりあえず、あきらめようと思います。
356 :
デフォルトの名無しさん:05/03/11 17:55:25
glFlush/glFinishがないと部分的にしか表示されないって時点で全然間違い。
無くても描画する。つまり、君のプログラムがプア。
glutSwapBuffersするならglFinishやglFlushは不要では?と、
勝手につぶやいてみるSDL使い。
問題はコードにあるのでは無い。キミ自身にある。
こんな奴らに訊くなと。
>355
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow(argv[0]);
この順番が逆になっているので、シングルバッファになっていると思う。
あきらめるのは早すぎるでしょう。
Forceware 76.10でglewを使ってGLSLのセットアップすると
エラー吐いて落ちる。glextの方のogl2brick(旧)だと通るんで
glewの問題ですかね?
新しいバージョンで直るかな。
対応してないビデオカードでどうにかCgを使う方法ってありますかね?
つか、NV50じゃなくてG70だろ。
>363
自分でコンパイラを書いてソフトウェアレンダリング
>>356 否定はしません。
>>360 当たりみたいです。
喉もとのつっかえが取れたみたいな感触です。感謝。
よく見たら、MQOのフェース取得部分がバグってるような感じだ。
今度暇をみて書き換えよう。うん。
レス、thx!
367 :
デフォルトの名無しさん:05/03/15 05:01:08
平面で構成されたオブジェクトを、スムースにしたいのですが、辺や頂点を丸める方法を教えてください。
>>367 スムースシェーディングしたい・・・ってことではないよね?
頂点間を補完してポリゴンをさらに分割したいっ・・・てことかな?
typo
補完→補間
371 :
367:05/03/15 05:31:36
法線ベクトルの設定方法が解らないのですが。
んなことは入門書に書いとるしweb上にもいっぱい資料がある
>>371 glVertexなんちゃらの前でglNormalなんちゃらしやがれ
glTranslatef(0.0f, dy,-7.0f);
glColor3f(1.0f,1.0f,1.0f);
glBegin(GL_TRIANGLES);
glVertex2f(0.0f,1.0f);
glVertex2f(1.0f,0.0f);
glVertex2f(-1.0f,0.0f);
glEnd();
dt+=0.033f;
dy-=0.5f*G*dt*dt;
ダブルバッファつかって落下運動のアニメーションですが、
上記のようにすれば動くのですが、
dt+=30/1000;
とすると動きません。
どうしてでしょうか・・・?原因がわかりません・・。
ダブルバッファでは、
フレームレート自動調整で60,30,20fpsってなるみたいですが、
現在のフレームレートを知ったり、
手動でフレームレート決めたり、手動でスワップさせる方法ありませんか?
思いつくのは、draw(),SwapBuffer(),周りをタイマー使って制御するとかですかね。。
× 手動でフレームレート決めたり、手動でスワップさせる方法ありませんか?
○ 手動でフレームレート決めてスワップさせる〜
> dt+=30/1000;
> とすると動きません。
OpenGLは関係ないな。C言語の初歩だろ。
30/1000でintだから切り詰められて0でしたね・・初歩的なミス・・・
>>376 ここはお前の学校の宿題用スレじゃねえんだ。チラシの裏にでも書いてろ。
381 :
デフォルトの名無しさん:05/03/16 19:09:43
>>376 フレームを描画する時間を安定させるんだ。
timeGetTimeで現在時刻をとり、最後に描画してから1/60秒たっていたら描画。
描画開始時点での現在時刻から時間のΔを求める。
382 :
デフォルトの名無しさん:05/03/16 23:02:49
よくダブルバッハとか、トリプルバッハリンゲとか聞きますが、
これは一体何のどういう如何な効果があるのですか。
バッハを連奏することですか。
言葉の意味からするとそんな感じなのですが。
>>382 真面目に答えようという人に失礼と思わないか?
ボケが来たらツッコミを入れる
それがプログラマーってもんだろ
つりだろ、つり
>386
つりっていってもクリスマスは終わってるよ
ってクリスマスツリーかよw
……寒っ
釣るほうももはや網の中。
皆インターネットという網にかかってる。
暖かくなってきた
点群をDelaunay分割(四面体)して表示する
プログラム作れって言われたらどのくらいで(期間)出来る?
Googleで検索してDelaunay分割出来るライブラリを探して
点群データ放り込んで出てきた結果を元に描画処理。
ライブラリがあれば1日。
アルゴリズムを追いかけて1時間、実装15分、デバグ15分の合計90分だな
>>392 いやー一から作らんといかんのよ。
もう2日やってるw
後2日くらいかかりそうだから、合計4日だねw
>>393 はえぇなぁ・・・。15分で出来るものなんだろうか・・・
395 :
デフォルトの名無しさん:2005/03/22(火) 21:19:35
gluiおもちれ〜〜〜
396 :
デフォルトの名無しさん:2005/03/29(火) 18:13:16
2Dはハードウェアアクセラレーションが効かないのですか?
ハードウェアやドライバ、プログラムによる。
テクスチャーにすればまず間違いなく効く
ハードウェアアクセラ効かない環境で GLUI とか使うのはやっぱり重いですか?
>>399 何とGLUIを比べて重いだの軽いだの言うのだ?
Qt とかの他のツールキットに比べてです。あまり CPU/Memory に負荷掛からないなら、
良いなと思ったのですが。
アホか。
すまん
何と比べても重いだろ。
GLUT32.LIBを開けるようにすればいいと思います
GLUT32.LIBを開けるようにする方法をおしえて。
>>406 さん
自己解決したみたいです。
bccのilink32.cfgにpsdkまでのパスを追加することによってコンパイルすることができるようになりました。
ヒントありがとうございました。
>>407は僕じゃないです。
409 :
デフォルトの名無しさん:2005/03/31(木) 23:21:54
てまえらの出番ですよ
174 名前: 仕様書無しさん 投稿日: 2005/03/31(木) 17:52:36
HLSLとGLSLを始めたいのですが、SDKの他に何が必要ですか。
字の感じからして機関車が必要かもしれませんが、
そういわれても懐にそんな余裕はありませんし、走らせることもできませんので
あしからず。
3e
411 :
デフォルトの名無しさん:int 2ch =05/04/02(土) 01:57:56
3dsMAXで作ったモデルをSGIのOpenGL Performerでスキンアニメーションさせたいのですが
MAX上でボーンなどで動きをつけても全く読み込んでくれません。さんざネットで調べたんだけど
さぱーり・・・。誰かわかりませんか?
412 :
デフォルトの名無しさん:int 2ch =05/04/02(土) 12:34:28
息子が泣いててかわいそう
206 名前: デフォルトの名無しさん [sage] 投稿日: 2005/04/01(金) 07:00:00
ウチの息子はSL好きなのでSLを見に行くことにしました。
中略
息子は「こんなのSLじゃなーい」といって泣き出しましたがSLには違いないはずです
私は父親として何を間違えましたか。
オープングーグルなんですけど、
414 :
デフォルトの名無しさん:2005/04/02(土) 23:31:28
>>411 Performerってスキンアニメーション対応してたか?
ズビバゼン!
1.5の拡張として採用されているGLSLと、
2.0のGLSLでは何か違いがありますか。
416 :
デフォルトの名無しさん:2005/04/03(日) 00:01:59
ゲゲーム板からやって来ました!
ARB_fragment_programってDirectXで言えばPixelshader2.0を構築できるものだって言うのは本当でしょうか!
>>415 それよりベンダの実装の差のほうが大きいんじゃないかな。最近はそうでもないのかな。
Windows環境なのですが、実行時にコンソールウインドウが開かないようにするにはどうすればいいのでしょうか?
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
という方法を試してみたのですがだめでした。
WinMainCRTStartupじゃないのか?
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"WinMainCRTStartup\"")
ということでしょうか?
結果はまったく変わらないです。
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
は、VC用の設定じゃなかった?bcc32とかじゃその方法じゃ無理っぽい予感。
違ったら素万。
おっしゃるとおりbccです。
int __stdcall WinMain( const void *hInst , const void *hPrevInst , char *szCmdLine , int nCmdShow )
{
return my_main(__argc, __argv);
}
int my_main( int argc , char *argv[] ){
という方法によってコンソールウインドウは出なくなったのですが、
おそらく、linuxではコンパイルできないですよね。
linuxのコンパイル方法がよくわからないので教えてください。
FC3です。
教えてください、かよ。
glut使えよ
426 :
422:2005/04/03(日) 20:24:35
>>423 Linux + GLUT なら普通に main() から始めればいいです。
もし423のソースをLinuxに対応させたいならこんな感じにしてみてはいかが?
#ifdef _WIN32
int __stdcall WinMain( const void *hInst , const void *hPrevInst , char *szCmdLine , int nCmdShow ) {
return my_main(__argc, __argv);
}
#else
int my_main( int argc , char *argv[] ) {
return my_main(__argc, __argv);
}
#endif
ところで、自分のコードを探したらこんな感じになってました。
int my_main( int argc , char *argv[] ) {}
#ifdef _WIN32
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#endif
int main(int argc, char** argv) {}
#ifdef _WIN32
int __stdcall WinMain( const void *hInst , const void *hPrevInst , char *szCmdLine , int nCmdShow ) {
return main(__argc, __argv);
}
#endif
int main( int argc , char *argv[] ) {
/*コードを書く*/
}
これでいいんじゃね?
あと検索してみたらBCCではエントリポイントはアセンブリ使わんと変えられんみたいな事が書いてあったが・・・
PBufferって環境依存?というかOS依存?
430 :
デフォルトの名無しさん:2005/04/06(水) 22:20:49
OpenGL基礎の基礎の基礎の基礎の基礎の基礎の基礎の基礎の基礎
から覚えるには、どうすればいいですか。
ていうかみんなどんな縁でOpenGLと知り合って
どうやって覚えたのか知りたい。
ネットに転がっているソースを分かるまで
読め読め読め読め読め読め読め読め読め読め読め読め
OpenGLとDirectXのどちらが早いとか、定評はありますか?あまりかわりませんか?
平均的にはどちらが早いか、トップスピード(ハードウェアとかOSとかを選びに選んだ場合)は
どちらが上かなど、知りたいです。
もしくは、いろいろ速度比較したようなサイトをご存知でしたら教えてください。
認知科学で視覚の実験をするために、知りたいんです。
>>433 非常におおざっぱな話としては、あまり変わらないです。ローエンドのシステムも
対象にするのであれば DirectX 優位かもしれませんが、ハイエンドのカードでは
同等か OpenGL 優位だと思います。
435 :
デフォルトの名無しさん:2005/04/07(木) 01:25:16
>>429 グラボとドライバ依存。
>>433 グラボとドライバ依存。トップスピードならOpenGLだと思う。
でも、スピードって何を指して言ってるの?
>>434-435 ありがとうございます。
OpenGLに適合したグラフィックボードを購入してやってみる方向で検討してみます。
>でも、スピードって何を指して言ってるの?
やっぱり突っ込まれましたか。
素人ゆえあまり細かいことがわからなくて、的外れかもしれませんが、
描画処理の早さ(あたりまえですか?汗)のことを指しました。
主にディスプレイ上での動きが早い(精密な)方がいいんです。
とりあえず開発スピードではないです。。。
あほっぽくてすみません。
437 :
デフォルトの名無しさん:2005/04/07(木) 11:45:40
>>436 ディスプレイ上での動きの早さってのは、つまり、可能な限り
滑らかに動くアニメーションってことかな?
D3DにしろOGLにしろ、グラボだけが良くても描画性能は出ないよ。
バス幅やCPUパワー、メモリとのバランスが高いレベルでバランス
とれてないと。
あと、視覚うんぬんと言ってるから液晶モニタじゃなくてブラウン管
なんだろうけれど、リフレッシュレートも120Hzとか高くするのかな?
>>437 glutのリフレッシュレートが60Hzくらいなので、
glut使う場合は120Hzも必要無いと思う。
D3DにしろOGLにしろ、ハードだけが良くても性能は出ないよ。
プログラマの能力や描画対象のデータ圧縮効率などが高いレベルでバランス
とれてないと。
440 :
デフォルトの名無しさん:2005/04/07(木) 13:18:26
>>439 D3DとOGLどちらが速いかというのが元の質問なのに、この回答はいかがなものかと思う。
なんかあたりまえのこと書いてるだけじゃん。(漏れは質問者じゃないよ)
442 :
デフォルトの名無しさん:2005/04/07(木) 14:38:29
>>437 >>438 フラットCRTでやるつもりですが、正直なところ具体的な周波数のことは
考えていませんでした。
高くできれば高くしたいと思います。
確かに、glutを使おうと思っているんですが、glut自体に
リフレッシュレートってあるんですか?
ヤフって(?)みたところ、ゲームモードというもので周波数を指定できる
というようなことはわかったのですが、そのデフォルト値が60ということでしょうか?
>>439-441 439 = 「がんがれ」と脳内変換しました。
443 :
433:2005/04/07(木) 15:00:21
すみません、442, 436は質問者(433)です。
D3DにしろOGLにしろ、ハードだけが良くても性能は出ないよ。
プログラマの能力や描画対象のデータ圧縮効率などが高いレベルでバランス
とれてないと。
>>441 当たり前の事がわからない人が多いのです。
>>440 glutMainLoop()の周期だよ。
>>433 実験でそんなもん意識するな。
使いやすい方使っときゃいいだけ。
まぁ世の中Windowsだけじゃないなだから、迷ったらOpenGLだな。
449 :
433:2005/04/07(木) 21:58:49
いろいろ参考になりました。
もうすこし詰めて調べるべき部分も明らかになってきました。
ありがとうございました。
メタセコイアで作成したデータ(メタセコイアでセーブできる形式なら何でも良いです)をOpenGLへ取り込めるライブラリか何かありませんか?
探すのが面倒なら自分で作るのが手っ取り早い。
今度は「作り方を教えてたもれ」と来るに違いない。
453 :
デフォルトの名無しさん:2005/04/08(金) 20:35:10
Wow WOWOW
横浜屁ーしたーず
微妙に笑ってしまった・・・
>>450 検索したら沢山出てくるだろ。
そもそもメタセコファイルなんて単純な形式なんだから勉強のつもりで自分で作ったら?
想像より簡単に作れると思うよ。
456 :
デフォルトの名無しさん:2005/04/09(土) 16:50:36
簡単に作れるのは誰かに懇切丁寧に教えてもらったからだろ
完全に無からのスタートだと日本人では誰一人として作れない
>>456 自分が日本人だからって日本人が皆自分と同じレベルだと考えるのは早合点
というかメタセコのSDKにソースがあるのに
馬鹿みたい
やっぱ完全に無からのスタートだと日本人では誰一人として作れない
460 :
デフォルトの名無しさん:2005/04/09(土) 18:03:19
何を勘違いして朝鮮人みたいな言い草してんだか。
461 :
デフォルトの名無しさん:2005/04/09(土) 18:21:32
お前ら教えてください。
最近openGLやり始めてすごい疑問に思うんだが、いろんなopenGL勉強ページを
見ていると関数の引数をGLfloat型で渡していることが結構ある、と思う。
実数引数がfloatでしか取れない時(glLightとか)は仕方ないとしても、
double型が使えるのになんでわざわざfloatを?何か深い理由があるのか?
それともただ見てるページがかなり古いとかいう話?
>>461 GPU内部の演算精度がfloatなことが多いからdoubleで渡しても無意味だからだよ。
>>462 そういうことか!ありがとう。胸のつかえがおりた。
・・ということは、結局doubleとfloatのどっちを使った方がいいんだ、
と思ったが、実際そんなに気にする必要もない?
よし、分かった
>>463 doubleとfloatは演算速度がかなり違うと思う。
ゲームの時は、floatオンリーでやるべき。
へたに混ぜると変換が起って速度が低下する。
あえて言わずに行方を見守ってたのに・。。
468 :
デフォルトの名無しさん:2005/04/10(日) 21:19:29
OpenGLでベンツマークソフトを作りたいのですが、
言語はC++を習得済みとしたら
一般的にどれくらいの期間でOpenGLを習得できますか。
とりあえずOpenGL1.5 + GLSLのフィーチャーを一通り網羅できればいいレベルで。
ベンツマークをt種繰りたいんです!
>>466 CPUとかだとfloatとdoubleでは速度差はなかったりするね。
WGFではGPUへdoubleで送れるそうだしfloatの利点は容量だけかもね。
わかりました!100年後にリリースしますので期待しててくださいね!
>>468 ベンツマークソフトに該当するページが見つかりませんでした。
検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
すげえ訛ってる
ベンツマーク
476 :
466:2005/04/11(月) 23:55:45
>>469 SSEとかまったく使わないんだったら同じ程度かもしれないけど
まったく使ってないわけないだろうから、速度差は大有り。
ちなみに、Mesaのソース見るとマトリックスとか全部floatに
なっている。double渡されると全部floatに変換される。
WGFはどうか知らんが、今あるGPUは全部float精度だから
double渡しても、結局はfloatになるんじゃないの?
とにかく、ゲームではdouble使う気にはまったくならない。
477 :
デフォルトの名無しさん:2005/04/12(火) 11:15:40
float志向ってやつ。
グラサンかけてんの。
double はまだ早いよ、後三世代が四世代先でないと無駄が表面化する、
集積度があと100倍上がれば double 一本でいけるようになると思うが、
16bitのfoatまで必要な現状ではアホっぽくなるよ。
………おれって読解力ないのかな
なぜかglInterleavedArraysはdoubleを受け付けてくれないのだが・・・
fリテラルつけるのがめんどいからdouble
gccのコンパイルオプションで逃げてる根性なしお orz
集積度が100倍上がったって、画面の解像度が65536倍ぐらい上がらない限り、
グラフィックスでdoubleを使うのは無駄だよ。
頂点座標やカラーをそんな精度で計算したって画面に出ないんだから。
ゲーム会社に入ったら、fつけろって言われるよ。
現状、モーションデータも16bitが普通じゃない?
色でも何でもそうだがそのままじゃ画面に出なくてもトーンマッピングすりゃ出る
出る
まあ何にせよユーザーの環境が一斉に最新になるわけはないので、
依然として旧態プログラムはやらんとならん
OpenGL2.0が出てきても、メインは1.3から1.5 + GLSL
2.0一本にはできん
489 :
デフォルトの名無しさん:2005/04/14(木) 23:04:29
M$ Visual Studio .NET2003で、C++を使ってOpenGLの課題が出ました。どなたか、お助けください。。
課題の内容は、イメージファイルを読み込んで そのイメージファイルに線のテキスチャーをマップして、その線の数や色を変更できるアプリケーションを
作るという事です。サンプルプログラムは、
http://zoo.millto.net/~pic-nic/CSE581_Lab1_sample.zip にアップしました。
現時点で、インターフェースはほとんど完成していて、後は論理コードを追加していく
段階なのですが、Form.1とImpressionism.h (ドキュメントクラス) があり、
Form.1内にある void DrawLines(const int frameNumber) というファンクション
をどうやって作れば良いのかが全然わからないのです。
DrawLinesは、線のテキスチャをマップするファンクションです。イメージファイルを
読み込んでからマップするよりも、テキスチャをマップしてあるバックグラウンドの上に
イメージファイルを読み込むという感じなのだと思います。(多分)今の段階では、以下のようなコードを書いてみました。
public: void DrawLines( const int frameNumber )
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3f( 1.0f, 1.0f, 1.0f );
glBegin( GL_QUADS );
glTexCoord2d( 0.2f, 0.2f );
glVertex2d( 0.2f, 0.2f );
glTexCoord2d( 0.8f, 0.2f );
glVertex2d( 0.8f, 0.2f );
glTexCoord2d( 0.8f, 0.8f );
glVertex2d( 0.8f, 0.8f );
glTexCoord2d( 0.2f, 0.8f );
glVertex2d( 0.2f, 0.8f );
glEnd();
glPanel->SwapBuffers();
}
先生に言われたのは、2*線数のglVertexが必要なのと、それらがfor loop内に
ある事。線に色を振り当てるには、それぞれの線にglColorが必要なことです。
それぞれのvertexがテキスチャ座標を持つためには、それぞれのvertexにglTexCoord
が必要な事(もしくは全体の線につき一つのglTexCoord)です。
ちんぷんかんぷんです。。 教えてください、オネガイします!
まずは先生に聞けよ。先生は教えるのが仕事なんだから。
ここじゃ教えても仕事じゃないからカネにならねぇのよ。
493 :
デフォルトの名無しさん:2005/04/15(金) 00:27:41
先生に聞かないと覚えることすらできなかった出来損ないが拗ねる
494 :
デフォルトの名無しさん:2005/04/15(金) 00:32:26
提出期限のかねあいで、先生に聞く時間がないので お邪魔しました。
質問でもなんでもというスレッドだと思ったので質問してみました。
別のスレッド探してみます。。。
495 :
デフォルトの名無しさん:2005/04/15(金) 00:33:20
ここは1.2までしかできない日本人が集まるところ
>>494 ここで質問するなら、サンプルプログラムを丸投げしたりしないでもうちょっと問題を咀嚼
して直面している問題の本質を自分の言葉で説明できるようにならなくちゃ駄目だ。
ここには変な人も親切な人も居る。ちゃんとした質問さえできれば回答を得られる
可能性は低くないと思うよ。
497 :
494:2005/04/15(金) 02:54:23
>496
ごもっともです。
自分なりに試行錯誤してみたのですが、まずはテキスチャを作る必要があると思うのです。
この課題では、たくさんの小さな2色の線がランダムにちりばめられたテキスチャを
作る必要があります。この線をランダムに散りばめる方法がわかりません。
ループを使って、ある程度ランダムな座標を作ってみたのですが、やはり模様に
なってしまい うまくいきません。どのようにして、ランダムな線をたくさん
かくのでしょうか?
もはやopenglの問題ではない。
既出かもしれませんが・・・ RADEON9600で実験してみたところ、
ARB_vertex_buffer_object使っても普通の頂点配列と比べてほとんど速度が変わらないです。
GL_EXT_compiled_vertex_arrayも速度に影響はほとんど無いようです。
これらの拡張って使う意味あるんでしょうか?
>>500 おいらも以前試したけど、ほとんど差が出なかったと記憶している。
メモリ→GPUの転送は十分速いので、ふつうはGPUのほうがネックになるってことかな。
最近のドライバは組んだとおりに動かないし
とりあえず意図が理解できれば勝手に速いほうに変える
>>500 つーか、ボトルネックがどこにあるのかも理解せずにベンチ取ったってしょうがないだろ。
使う意味がないと思うなら使わなきゃいいだけの事。
業務でシミュレータなんか作ってりゃCPU資源が厳しい事になるからVBO使わないと
やってられねーっつーの。
作ったアプリを配布したいのですがその際に"glut32.dll"をアプリに同梱するのは問題ないでしょうか?
作者に聞け馬鹿
問題でも死刑にはならないでしょ。
>504
glut32.dllは再配布自由だったはず
てか気になるならググレ
いいかげんな答えをしないでさっさと答えてくださいよ
509 :
504:2005/04/17(日) 22:40:11
>>507 ありがとうございます。
少しぐぐってみたのですが、書いてあるところが見つからなかったもので・・。
510 :
デフォルトの名無しさん:2005/04/17(日) 23:49:43
Windows環境下のOpenGL+GLUTで
タイトルバーのないウィンドウを作りたいのですが
どうすればいいのでしょうか?
タイトルバーが無いと困るよ
ゲームの場合はさして困らないというか、
市販品でもそういうのは結構あるぞ
言い換えればWindowモードのサポートが弱いんだが
なんとなく既出ぽくて聞きにくかったんだがこの流れなら聞ける。
glutでDOS窓出さない方法わかります?昔見た記憶があるんだが
検索かけてもどうも見当たらない。
あら、そんな手前にあったんですね。これは失礼&サンクス。
OpenGL初心者です。
分かる方教えて下さい〜。
画面より大きい網目の図形を左から右へ動かしたり右から左に動かしたりしたいのです。
数秒間(for文で適当に)ごとに左右交互に移動したいです。
但し、画面を超える移動した場合、切れ目無く見せたいのでもとの位置に戻す処理を入れました。
(いや、入れたつもりです;)
でも戻る際、微妙に「ガクッ」っとします・・・どうすれば解決できるでしょうか?
/* 画面より大きい網目(下記のような)図形を左右に動かしたい */
/* Xsize=640,Ysize=480 */
/* D=32 */
{
glRotatef(15.0,0.0,0.0,1.0);
glBegin(GL_QUADS);
for (i=0;i<Xzise*3;i+=D*3){
glVertex2f(-Xzise+i,Ysize*2);
glVertex2f(-Xzise+i,-Ysize);
glVertex2f(-Xzise+D+i,-Ysize);
glVertex2f(-Xzise+D+i,Ysize*2);
}
glEnd();
glRotatef(-30.0,0.0,0.0,1.0);
glBegin(GL_QUADS);
for (j=0;j<Ysize*3;j+=D*3){
glVertex2f(-Xzise,-Ysize+D+j);
glVertex2f(-Xzise,-Ysize+j);
glVertex2f(Xzise*2,-Ysize+j);
glVertex2f(Xzise*2,-Ysize+D+j);
}
glEnd();
}
521 :
続き1:2005/04/19(火) 23:38:09
/* 動かす処理 */
/* MOVING_D=1800 */
/* step=任意(1-10) ステップ数*/
/* angle=45 */
/* COMP=(int)(Xsize/step) 画面端まで行ったか否か */
{
m = step;
fd = 0;
for (t=0; t<MOVING_D; t++){
glRotatef(angle,0.0,0.0,1.0);
glTranslatef(m,m,0.0);
fd+=step;
if (fd>COMP){
glTranslatef(-m,-m,0.0);
fd=0;
m=0;
}
drawbar();
glLoadIdentity();
m+=step;
}
522 :
続き2:2005/04/19(火) 23:39:22
m_buf = m;
m-=step;
bk = 0;
for (t; t>=0; t--){
glRotatef(angle,0.0,0.0,1.0);
glTranslatef(m,m,0.0);
bk+=step;
if (bk>COMP){
glTranslatef(-m,-m,0.0);
bk=0;
m=m_buf;
}
drawbar();
glLoadIdentity();
m-=step;
}
}
以上です。長くてごめんなさい。
>>520 その質問はOpenGL以前の問題な気がするが・・・
spinの記事見たか?
OpenGL/ES2.0もWGFに負けず新たなシェーダーの機構が付くんだな。
>>500 漏れが実験してみたところ、ローポリなオブジェクトを大量に描画するような状態だとほとんど効果が無いみたいでした。
1万ポリゴンくらいのモデルだと、頂点配列より2倍ほど高速に描画できました。
環境は同じくRADEON9600無印です。
526 :
525:2005/04/21(木) 22:58:16
あっ、ARB_vertex_buffer_objectのことです。紛らわしい書き方してすみません。
DOOM3で敗北
Riddickで敗北
glutMouseFuncでコールバック関数だから
マウスドラッグできない。
API使うしかない??
529 :
デフォルトの名無しさん:2005/04/28(木) 02:36:26
GLSLで描画した内容をメモリへ格納するテストを行っています。
なお都合により、描画データは浮動小数点データである必要があります。
また実行環境はWindowsとLinux両方を想定しています。
とりあえずテクスチャへの描画を行い、
glGetTexImageあたりをやれば描画内容の取得が行えるかと思ったんですが、
テクスチャへ描画する方法が良くわかりませんでした。
(
ttp://www.gpgpu.org/developer/ のrendertextureを見たんだけど、
やってることが多くてよくわからんかった。
しかもLinuxじゃ使えないとか書いてある。)
ところで、
ttp://www.gpgpu.org/developer/ の
Tutorial 0: "Hello GPGPU"
っていうのが、framebufferのデータをテクスチャ化しています。
参考にして描画j結果をglGetTexImageで吐いてみたんですが、
どうも値があいません。
良く考えてみると、
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16, DATA_WIDTH, DATA_HEIGHT, 0, GL_RGBA, GL_FLOAT, 0);
といった感じにFLOATなテクスチャを作ったところで、
そもそもframebufferがfloatなのかという問題があるのではないかと思い当たりました。
以上から、
1.テクスチャへの描画の単純なサンプルを知りませんか?
2.floatなframebufferを作る方法を知りませんか?
(ARB_texture_floatとかglClampColorARBとかいうものがあるらしいですが、使い方が解りませんでした。)
よろしくおねがいします。
529に近い事で一つ質問。
Zバッファをテクスチャー化してシェーダで扱いたいのですが、何か方法はありますか?
古典的な被写界震度処理をやってみたいのですが、DirectXでは無理だったんですよね。
>>530 デプスマップをつかった影付けのサンプルあたりが参考になるんじゃないかな。
532 :
デフォルトの名無しさん:2005/04/29(金) 03:44:08
GLUT GLUを使わずに、3Dの箱、ドーナツ型、円錐、円柱 そして球を書くには、
どうしたらよいのでしょうか?
教えてください、お願いします。
534 :
532:2005/04/29(金) 05:06:29
グーグルで調べたのですが、箱を作るサンプルコードは見つかったのですが それ以外
手がかりがつかめませんでした。。調べ方が悪いのでしょうか、
もう一度調べてみます。
つかGLUTはオープンソースなのだが・・・
>>532 それはそれぞれの形状の座標がどのように生成されるか聞いているのか?
それともOpenGLだけで形状の定義がしたいのだがどうやるのかヒント暮れと聞いているのか?
どっちよ?
>532
位置ベクトルと面インデックスを定義すればいいと思うのれす
これでわからない頭なら高校数学の勉強を頑張ってくだちい
分度器使え分度器
皮肉でもなんでもなく、高校数学の教科書(IIIかCあたり?)を読むのが一番だと思われ。
というかこれはOpenGLの質問なのか?
じゃなくて情報処理科に行って、手取り足取り教えてもらうのがいい。
実際そうした人だけが覚えることができた。
そうでなきゃ一切誰もできなかった。
541 :
デフォルトの名無しさん:2005/04/30(土) 10:15:56
ウィンドウのサイズ(幅と高さ| を得るにはどのようにしたら
よいのでしょうか?GetClientRectが使えれば楽なのですが、HWNDが何か
よくわからなくて。。
また、ビューポートを複数使って、画面を4分割して 一つのオブジェクトを表示しているの
ですが、画面のリサイズがうまくいきません。
542 :
541:2005/04/30(土) 10:17:46
質問が途切れてしまいました。
画面のリサイズの続きなのですが、Resizeメゾッドの中でも 4回、ビューポート
指定してリサイズしなければならないのでしょうか?
ウィンドウハンドルがわかれば幅と高さがわかるんだから
それをリサイズに引数で渡せばいいだけなんじゃないの?
んんんんんん?
544 :
541:2005/04/30(土) 11:25:53
>543さん
そうなんですが、VisualStudio.NETを使っているので ウィンドウをCreateWindowで
作ったのではないのでウィンドウハンドルがわからないのです。
どうにか、ウィンドウハンドルが分かるメゾッドでもあればよいのですが。
GetWhnd、だったかな? も結局使い方がよくわからずに挫折していまって。。
OpenGL関係ないじゃないじゃないか
546 :
デフォルトの名無しさん:2005/04/30(土) 12:56:01
急速にスレの質が低下してまいりました
CreateWindowで作ったウィンドウハンドルをメンバ変数にしといて
それをメンバ変数でゲットすりゃあウィンドウハンドルが取れるだろうがぼけえええええ
あああああああああああああああああーん?
メンバ関数でゲットじゃぼけがああああああああああ
ぐわし!!!!!!!!!!!!!!!!!!!!!!!!!!!!
なんなの?この空気
550 :
デフォルトの名無しさん:2005/04/30(土) 13:50:36
このスレってもう不要でしょ
ぐわしからちょっとおかしい
glGetうんたらでビューポート取得が出来なかったか
DirectXにしても処理の手順がわからないというか、
「え、そんな子供だましみたいなことやってんの?」的手法ばかりで混乱するのであろう
普通3Dというから、計算で描画しているものだと考える
もちろん計算しているわけだが高度な演算だと思っているので
まさか 「Z領域を透明色で塗りつぶしてから必要な部分だけ着色」 という手順を
自分でやるものだと思っていない
高度な演算=ハナから必要な部分だけを求めて指定色で勝手に着色してくれる
高度な演算=disableとenableを自分で切り替えるのではなく勝手に判断してくれる
そういう、なかば思い込みがあるので
初めてOpenGLやDirectXに触れる人は混乱する
実際やってる計算は四則演算であり全員リファレンスを元に
「こういうときにはこの式」と丸暗記でやっているだけ
みんなで
>>529あたりのまったりしたOpenGL地獄に戻ろうorz
心理学を学ぼう
これは実際の講義に入る前の前提講にもある
「人と人とが結びつくためにはどうすればよいか」 注:エロい理由は男女関係
となると、[共通した目的を持ち、協力すること]である。
多人種、多宗教などの複雑な人種構造を持つアメリカは、
共通の敵を作ることで国家を一つにまとめなければならないのと同じことだ。
このスレで言えば、別に敵を作る必要はないので共通の目的を持てばよい。
つまりはOpenGL使って何らかのアプリをみんなで作ればいいだけである。
ある質問に対してみんなで考えることも可能だが、
そんな長く引っ張ることができる質問が出てくるだろうか。
できなきゃバラバラのままだ。
>>556 まずは正しい日本語を勉強してこい
話はそれからだ
>>557 556はただたんに、共通の敵をつくれといっているだけだろ。
スレに書き込む姿勢というものがなってない
そんなことだからスレが荒れる
これはよくないと思う
謙虚でもそうでなくても日本人は1.2までだから何の役にも立たねえよ。
562 :
デフォルトの名無しさん:2005/05/03(火) 15:24:04
CPUではなく、GPU側で行列計算をさせるようにするにはどうしたらよいのでしょうか?
DirectXで言うところの頂点バッファです。
>>562 頂点シェーダを使いたいって意味か?GLSL使え。
いやです
>562
DirectXって変な用語使うんだね。
頂点バッファといったら普通は頂点のバッファのことだろう。
行列計算とは関係なさそうに思えるけど。
>>562 ちゃんとドライバが入っていれば普通にGPU側で計算します。
64bit版Windowsに対応したGL用のシェーダー言語って無い?
GLSLでもCgでもいいんだけど・・・。
そろそろ噛み付いちゃっていいかなァ?
>>567 nVidiaの最新x64ドライバでGLSL使えない?
Cgならクロスコンパイルすれば64bit対応もクソもないんじゃないか?
ザッツオール!
Cgコンパイラのソース公開されてるけど、あれってインラインアセンブラ使ってるからWinXP X64ではmake出来ないんだよね。
X64用のコンパイラってインラインアセンブラ対応してないから・・・
>>571 つか、Cgコンパイラを64bitバイナリにしたい理由って何?
ワロタw
コンパイラ64bit化しても、吐き出されるのを64bit化しなけりゃ意味ねぇw
つーか、この場合cgGL.dllとかを64bit化するもんだが・・・
>>573 なるほど。確かに cgGL.dll とかは64bit化しないとリンクできないね。
個人的には Cg コンパイラはオフラインで使ってアセンブラ化しておいて、
glProgramStringARB などで読み込めば用は足りるから、その辺の
ライブラリは使ってなかったりする。
待ってりゃ必ず出てくる
メーカーの売りの一つだから時間をかけることはすまい
576 :
デフォルトの名無しさん:2005/05/04(水) 01:41:45
確かにオーバーフローしてはいるが、スレ違いだ
そんなことはわかってる
いやわかってないね
きひ
行列スタックはGPU依存?
582 :
デフォルトの名無しさん:2005/05/04(水) 13:58:11
おい、CGプログラム技術板が欲しいぞ。
PRTだのメトロポリスなんとかだの、全然わからん。
OpenGLやDirectXの質問とかもその板でまとまると便利だ。
是非、だれか作ってくれ。
一応CG板ってのはあるみたいなんだが、ツールユーザーオンリーみたいでつまらんのだ。
ゲーム製作板でいいだろ
さすがに板はいらんだろ
スレ立てたら?
ゲーム製作とCGはかならずしも関係はないだろう。
リアルサウンドの例もあるし、テトリスとかもCG関係無いだろう。
それにゲーム製作は、CG技術だけじゃなくもっといろんなものの組み合わせの結晶なわけで、
むしろ必要以上のCG技術は無用の場合さえある。
ゲーム作りたいって気持ちは必ずしもCGに対する飽くなき探究心と関連するものではないと思う。
目指すCGプログラム技術板は(あくまで他力本願だけど)、
極上のCG、画像処理、モーション生成を得る為のツールに依存しない技術を話題とし、
それら分野に特有のプログラミング技術や数学・物理に関しても話題にできたらと思う。
そんな”CGプログラム技術板”をどなたか作ってください。
運営に言えよ。つーか、したらばかなんかで勝手に作れよ。うるさい。
>>585 ここでそんな事を言っても永遠に板はできない
運営側に直接言ってくれ
<<586 <<587
漏れ、行動力ないからだれか依頼してくれないかなぁ。
それに、そういう板にどれくらい需要があるのか全然検討つかないし。
OpenGLに関係ない書き込みですみません。これでやめますんで。
つい、ふと思った事を書いちゃいました。
まさにチラシの裏だな
これからはミスプリした紙の裏に書けよ。
ツールの使い方もわかりそうにない香具師だな
それともわざと専用ブラウザでしか参照できないような
レスしたのか?いや、マテヨ、釣り?
OpenGLについて語れ。
頂点オブジェクトの使い方を教えれ
面の上にラインを引くと点線みたいに汚く見えるんで解決方法を教えてくだちい
ウホッ!いい解決・・・
ラインの上にラインを引くと点線みたいに汚く見えるんで解決方法を教えてくだちい
>>585 プログラム技術とOpenGLもかならずしも関係あるわけじゃないんだが・・・・
質問させてください。
現在SDLとOpenGLを利用してプログラムを作っています。画像ファイルを
テクスチャとして利用しようと思い、SDL_imageのIMG_Load()を使って
読み込んだファイルからテクスチャを作成してマッピングしています。普通に
マッピングするだけならできたのですが、この際に指定した色をカラーキーとして
透過させたいと思っています。しかし色々調べてはみたのですが方法が分かりません
でした。もしどなたかご存知でしたら教えていただけないでしょうか。よろしくお願いします。
しつもそ。オーソとフラスタムを切り替えると光源に違いが出るのはなんで?
OpenGLは低機能なので、
DirectDrawにあるようなカラーキーでの透過はできません。
>>600 カラーキーなんて貧乏くさい機能は使わず、ちゃんと画像にアルファチャンネル
作っておけ。
>>597 多分Z比較のせい。
先に書く方のZ書き込みか、あとに書く方のZコンペアをDisableしておけ。
>>599 その全文自動翻訳のページ、検索で真っ先にヒットしやがるから
かえって迷惑なんだよなあ…。
>>601 光源の種類によるが、無限縁の線光源以外は、そりゃ変わって見えるだろう。
実座標系でのライトの焦点位置からの減衰は、どのビューでも勿論一緒。
その反映の仕方が違うだけ。
視線ベクトルが絡んでくるとなると更に面倒なことになるけど。
>>606 まあAxisが「斧」とか、いろいろヤバイ翻訳ではあるな。
609 :
デフォルトの名無しさん:2005/05/05(木) 23:30:47
ここの連中でクロニコーオブレデックみたいなゴイスーでゴジャースなFPSつくってください
611 :
デフォルトの名無しさん:2005/05/05(木) 23:37:39
そこで言ったら目殺されました
じゃあDirectXのスレに逝って下さい。
>>608 いろいろヤバイつうか、はっきり言って邪魔だぜ、あのページ。
翻訳の意思があって、少しずつでも手を入れてるなら全然OKなんだけど、
一体何を意図してあんなの放置してるんだか。
614 :
デフォルトの名無しさん:2005/05/06(金) 05:18:35
>>608 クリップ座標において実行されたパースペクティブ部門は、標準化機器座標 合計3つの斧で-1から1までの範囲 を作り出します。
ワロタ
まあ日本語訳として貴重なもんではある
616 :
デフォルトの名無しさん:2005/05/06(金) 07:39:31
>>610 たらい回しにされるんだが誘導する奴って向こうの住人ってわけじゃないの?
>>615 あんなクオリティの訳ならないほうがマシだろう。
一体誰の役に立つんだ?
修正を投稿できるような形にしてくれりゃいいのにな
文字表示する方法教えろ
あきこ
>>620 絵として表示する。文字を絵にする方法は環境依存
>>623 テクスチャで表示しろってことであってる?
>>624 テクスチャーでもいいかも。使ったことないけど。
glDrawPixels の方がフォントサイズとかを考えると楽な気がする。
もしアルファベットだけならディスプレイリスト使う方法がネット上に
たくさん見付かる。
>>625 ありがとうございます
目指す方向がみえてきました
べん
き
○○でなければならない
完璧でなければならない
これに異常に拘るのは、強迫神経症といって
立派な精神障害。
Riddickすげー
去年の10月発売とはいえ、今までで最高レベルのゴラフィックだろ
おまえらは1.2までだからこういうの作れねえんだよな(プ
今新しいグラボ買っても1.5だしな
2.0ですが何か?
ていうか
1.5 + GLSLで2.0相当だろ
もともと2.0ってのはそれなんだし
[何の脈絡もないが今 そりゃ違うんじゃねえか?と思っていること]
Proximityを「代理者的」と訳すアホ!!!!!!!
ゴーゴ13のプロキシー・ファイトを「代理戦争」とか言って憚らない奴!!!!!!
妙なネットワーク用語と英語を勘違いするんじゃねえよ
私は持っています、はいそれはそうです、二つが質問。
1.
OpenGLではGLSL以前にはシェーダってなかったのですか。
DX8時代のピクセルシェーダのような。
Quake2あたりでシェーダ使ってたような気もしますが
2.
GLSL世代ではアセンブラシェーダは書けなくなるのですか。
何をどう言ったところで、アセンブラにはかなわない。
というよりも自分がアセンブラシェーダを覚えたいので
二二二二l \ │ /
| | ∧ ∧ / ̄\ ∧∧
| | ( ゚∀゚ )つ─◎ ─( ゚ ∀ ゚ )─◎ ( ゚∀゚)つ─◎
| | /´ ̄し' ̄し' \ /// /´ ̄し' ̄し' \ ///. /´ ̄し' ̄し' \ ///
 ̄ ̄| 、_人_ / 彡 ◎  ̄ | 、_人_ / 彡 ◎ ̄ ̄ ̄| 、_人_ / 彡 ◎ ̄
| _) ◎彡| | バン | _) ◎彡.| | バン | _) ◎彡.| | パン
| ´`Y´ | | バン | ´`Y´ .| | バン | #`Y´ .| | パン
t______t,,ノ t_______t,ノ t_____#t,ノ
_______________________________
>>636 1.ある。君の言うところのアセンブラシェーダ。標準機能ではない。
2.大丈夫。ただし標準機能ではない。OpenGL 2.0ではGLSLは標準機能。
すみません、ちょおっとしつもんがあるのでおりまするが、
わたくし歌舞伎マスターともうしまする
ワーァタクシーィ
カァーブゥーキィムゥァアストゥァアアイイーマスゥルケェエレェエドォモォ
すいません質問です
CodeSamplerのサンプルを参考にしてPBufferのテストをしてみました
PBufferを複数作成して、それぞれにレンダリングしたいのですが
PBufferを複数作成してもそのうち最後に作成したPBufferにしか正しくレンダリングできないようです
もし何かヒントなどありましたら、ご教授お願いします
643 :
デフォルトの名無しさん:2005/05/08(日) 01:26:43
>>642 レンダリングコンテキストは正しく設定してあるのか?
>643
レスありがとうございます
>レンダリングコンテキストは正しく設定してあるのか?
はい、レンダリングコンテキストはwglMakeCurrentを使って切り替えできています
645 :
デフォルトの名無しさん:2005/05/08(日) 10:44:19
>>44 wglMakeContextCurrentARBは?
そもそも、PBufferをテクスチャにしてるのか、PBufferからバックバッファに
コピーしてるのか、その他、どれ?
D・V・D!D・V・D!
647 :
644:2005/05/08(日) 13:44:11
wglMakeCurrentを使ってPBufferをレンダリング先に指定して描画します
最後にwglMakeCurrentを使ってデフォルトのレンダリングコンテキストを有効にして
wglBindTexImageARBを使って先にレンダリングしたPbufferをテクスチャとして利用しています
うーんなんかうまく説明できていない気もしますが、こんな感じです
wglMakeContextCurrentARBは使用していないので、調べてみます
648 :
デフォルトの名無しさん:2005/05/09(月) 09:44:03
>>648 Alpha付きポリゴンをOpenGLやDirectXで表示したことあるか?
Zバッファ法である限り、Zソートしてから描画しなければ思ったような
レンダリングは行われない。それにしてもスタ桃のレベルの低下っぷりは
もはや底辺以下のレベルにまで達しているな。。。久々に見てビビッタ。
しかしZソートしかやりようがないなんて本当かねえ
普通のZバッファと半透明ポリゴンは省いたZバッファ2枚用意しとけば
済むような気がするが・・
>>650 半透明ポリゴン同士の重なりがある場合、半透明ポリゴン同士はZソートしておく
必要がある。(交差を考えるとZソートでも不十分)
不透明ポリゴンは先行して通常のZバッファでレンダリングしておけばいいけどね。
652 :
デフォルトの名無しさん:2005/05/09(月) 15:35:03
OpenGLをハードウェアではなくソフトウェアで実装しているものってありますか?
ソースとか配布されてませんかね?
654 :
デフォルトの名無しさん:2005/05/09(月) 15:40:44
>>653 即レスどうもありがとう。
レンダラーの中身の実装が見たかったんですが、Mesaを見ても何がなにやら・・・
>>655 OpenGLのように多機能なレンダラなら構造が複雑でもしょうがないだろ。
レイトレーシングの基本の基本なら100行くらいで書けるし、
そういう解説サイトも探せば多分あると思う。そっから勉強したら?
質問です。
現在のプロジェクション行列の要素16個を得るにはどうしたら良いのでしょうか?
解決しました。glGetDoublevでした
660 :
655:2005/05/10(火) 18:02:49
>>656 ラスタライザの部分をいじって、実行トレースを作ろうと思ったんですが、
どこで実装してるのか、、、やっぱソースを読み込むか。
>>657 どうもありがとうございます!
Javaの方が得意なのでとても読みやすいです。
スミマセン、質問させてください。
GLで描画した上に、マウスドラッグの矩形を描画したいのですが、
WinSDKのMoveToExとLineToで描くとひどくちらついてしまいます。
GLで線を描こうかとも思ったのですが、
GLではスクリーン座標で描画することができないようで、困ってしまいました。
ちらつかせずに、スクリーン座標で線を描くにはどうすればいいのでしょうか?
663 :
661:2005/05/10(火) 21:24:17
>>662 レスありがとうございます。
glOrthoで座標系をあわせる方法でやってみたいと思います。
お前ら何いつまでAPIシコシコいじってんだか。
これからの時代はソフトウェアラスタライザが復権するというのに。
哀れなり。
>>664 哀れな漏れに新しいビデオボードをめぐんでくれ。
_ ∩
( ゚∀゚)彡 バクシーシ! バクシーシ!
⊂彡
なんだこりゃ
SDLのOpenGLからはCgは使えないんだな・・・。
う〜む、よのなかそんなに楽じゃないって事さね。
673 :
デフォルトの名無しさん:2005/05/14(土) 20:03:01
Cgが使えるとPCとPS3でゲームが出せる
OpenGLが使えるとPCとPS3とファッキントッシュとLinuxでゲームが出せる
別にCgでもいいんだが
DirectXが使えるとXboxとPCでベームが出せる
俺は光線銃が使えるからビームが出せるぞ!
お前の話はつまらない。否、お前がつまらない。
マックの場合、なんかゲーム出せば売れる感じがする
ゲームに飢えてるから
絶対数は少なくても、比率で見ると凄い感じ
数はWindowsとの併売で稼ごうや
飢えてる分、無視はしないだろうが糞ゲーには容赦ないぞ。
新しいMac欲しいなあ。G3はそろそろ限界だよ。
Towerを復刻するんだ。
679 :
デフォルトの名無しさん:2005/05/15(日) 13:27:08
テストに出た問題なのですが、いくつかわからなかった部分があるので、質問させてください!
glViewport(0,0,100,200);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(30.0, 0.0, 1.0, 0.0);
glPushMatrix();
glTranslatef(1, 1, 1);
glMatrixMode(GL_PERSPECTIVE);
glScale(3,3,3);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glScale(0,0,-1);
glPopMatrix();
glBegin(GL_LINES);
glVertex3f(0,0,0);
glVertex3f(1,0,0);
glEnd()
以上のOpenGLコードによってもたらされる4x4のModelview matrixと、
頂点の位置を求めよ。(ピクセルの位置)
教えて君ですいませんが、答えが分かるかた 教えてください。
お願いします!!
>>679 テストに出たなら指導教官に聞くのがいいんじゃない。
教官は君に教えるのが仕事なんだから。
681 :
679:2005/05/15(日) 13:45:57
実は、このテスト 平均点が悪すぎて、まったく同じテストを家に持ち帰って解いて、
再度提出し、その結果に見合った点数を一度目のテストの点数に追加するという
先生の意向なので 先生に聞けないのです。。
お助けください。。。
>>681 だったら、ここで聞くのはカンニングじゃん。w
せめて「自分ではここまで考えた(調べた)がここがどうしてもわからない」とかの
レベルで質問しないと、ここではたぶん誰も相手にしてくれないよ。
683 :
679:2005/05/15(日) 13:58:55
持ち帰りテストは、カンニング容認の試験なのです。
教科書を使うも、人に聞くのも認められています。
自分では、5行目でPush、12行目にPopがあって その間には
何も描くコードがないのでその間の座標変換はすべて無効になる
と思いました。なので、結局は0,0,0と1,0,0を頂点の線がY軸を30度
回転させたものが表示されると思うのですが、きっと違いますよね。。
これをどうやってModelview matrixで表すのかも、よくわかりません。。
普段の授業をどういう態度で勉強してきたのか分かるな。
分からないんだから 0点でいいじゃん。人間素直が一番。
実際にプログラムを動かしてみりゃいいじゃん。
現在のマトリックスの値をゲットする方法は知ってるよね?
ググれば大抵のことは分かる便利な世の中なのに・・・
最近の高校はそんな事まで教えてくれるのか・・・
こんなん高校数学レベルだろ
高校で実用する行列を習った事は無かったぞ。
こんなの何に使うんだろ〜 ってレベルでしか教えてもらってないはず。
どうでもいいから早く宿題終わらせて糞して寝ろ!
単位はやらんぞ
693 :
679:2005/05/15(日) 23:54:11
えっと、5行目から12行目の間のコードは 無効だというのは、
あっているのでしょうか?
ただいま、いただいたパワーポイント勉強中です。。
695 :
679:2005/05/16(月) 00:11:26
>694
なるほど! Pushされた時のMatrixModeの座標状態にPopで戻るのですね。
となると、glTranslatef1,1,1とglScale0,0,-1が無効になるという考えで正しいのでしょうか?
あんまり学生の前でこういうことは言わないほうが良いんだろうけど、本当にこんな問題を
出しているんだとしたらずいぶん変な教官だな。
もう少し実用的なプログラムでテストすべきだとは思うがね。
あきらかに引っ掛ける意図だけのプログラムじゃぁなぁ……
698 :
679:2005/05/16(月) 00:20:50
>696
便乗するつもりではないのですが、この他にも予想外の
問題が多くて、結果ものすごい低い平均点になってしまったのだと思います。
この教官は この授業を教えるのが初めてなので、仕方ないのかもしれません。
ピログラマーたるもの、いつ何時いかなる事態が起こっても平常心を失ってはならない。
どんな理不尽な問題であろうとも、どんな無茶な要求であろうとも決して慌ててはならない。
>>696 そんなに変な問題とは思わないけど。
Matrix関係を理解してるかどうか見たかったんでは?
702 :
679:2005/05/16(月) 00:43:36
|cos30, 0, sin30, 0| |3, 0, 0, 0|
|0, 1, 0, 0| |0, 3, 0, 0|
|-sin30,0, cos30, 0| |0, 0, 3, 0|
|0 0, 0, 1| |0, 0, 0, 1|
上記のMatrixを、
|0| |1|
|0| |0|
|0| |0|
|1| と |1| にかけて、結果
|0, 0, 0, 0| |3*cos30, 0, 0, 0|
|0, 0, 0, 0| | 0, 0, 0, 0|
|0, 0, 0, 0| | 0, 0, 0, 0|
|0, 0, 0, 1| と | 0, 0, 0, 1| がそれぞれの4x4 Matrix だという風に
自分なりに考えたのですが、よく見ると 問題文に4x4Modelview matrixと書いて
あるので、もしかするとMatrixModeがGL PERSPECTIVEの時のMatrix変換は
省くのかなとも思い始めてしまいました。 どうなのでしょうか?
独学最強。これセオリー。
駄目な奴は
何をやっても
駄目
無駄無駄 無駄ァッ!!!!
706 :
679:2005/05/16(月) 22:37:18
すいません、まじ答え教えてください。。締め切りまで後3時間しかないんです。。。
答え
Modelview matrix
World = Scale×Rot×Translate
頂点の位置は無し。なぜならGL_LINESだから。
おいLineは頂点2つだろーがボケ
そもそも視錐台の情報がないんだが、
OpenGLってデフォルトでやってくれるのか?
711 :
679:2005/05/16(月) 22:52:43
Scale3.3.3 X Rotate30, 0, 1, 0 X Translate1, 1, 1 ということですか?!
712 :
679:2005/05/16(月) 22:53:22
Scale3.3.3 X Rotate30, 0, 1, 0 X Translate1, 1, 1 ということですか?!
でも、内容読んで行くと、先生が「頂点の位置」って書いちゃった気分が分かる。
Push/PopやglMatrixModeで区切られる部分をばさっと削除して読めば水道
配管工にも理解出来るぞこれは。ちなみに俺は水道配管工だ。
スーパーマリオか >配管工
>>713 水道の配管は OpenGL より面白そうだな
ワロス
しかし
>>706 を信じれば夜中の1時半に締め切りか。かわった学校だな。
水道管が破裂して股間に水がゴオオオオ
ああああ〜誰か止めて止めて シュゴオオオオオオ
周りの人「ギャハハハハハ」「やだー」「なにあれ?キャー」
>717
寝る時間だよ
720 :
679:2005/05/16(月) 23:06:00
ええっと。。。
Scaleは、3,3,3を使う方向であってますか?
それともMatrixModeがModelviewである Scale0,0,-1を使うのでしょうか?
721 :
679:2005/05/16(月) 23:07:23
寝る時間じゃないですよ!!
本当にあと3時間なんです。日本ではなく、今の時間は朝の10時7分です。
ヒロシです・・・
プロジェクション変換とワールド変換の区別がつかんとです・・・
>>721 ふむ、ってことは、君はダラス辺りにいるのか。
OpenGLでDirectX9と同等のことは出来るのでしょうか?つまりそのシェーダ
>679
あきらめろ。
>702を見る限りおまえは
行列×ベクトルが行列になるのかベクトルになるのかも
わかっていないようだから、
そんな奴にわかるように教えるには
高校数学の教科書を全部読み直すぐらいの時間が必要。
ってそろそろ時間切れか?
726 :
デフォルトの名無しさん:2005/05/17(火) 01:44:42
>>726 そのページの白地が紛らわしいまだら模様なもんで
液晶が劣化したのかと思って焦った。
>>726 少なくともOpenGLについての知識は極めて稚拙なものだね。
その他の点でも文章が無駄に長いだけ。
特に突っ込む価値すらないと思われる。
>>726 3倍というのは言いすぎだがGL糞というのは同意。
Cell糞というのは非同意。
>>726 こういう文章書く人って聞く耳持たないからなぁ・・・
この人、もしかしてPS3に搭載されるのがOpenGL/ESだって知らないのかな?
GLはpbufferの仕様がウンコすぎ。早くFBO実装してくれや。
>>726 今だに基本ライブラリーの優劣にこだわってるやつは負け組み。
ツールが充実してるほうがはるかに重要なのに。
「糞ライブラリー+充実したツール類」の方が、その反対よりも遥かにまし。
データがちゃんとハードに最適化された状態で出力されていれば、
たとえPS2のように、ほとんど直接ハードを叩くようなものでも
3Dをちゃんと理解してる人にとってはたいした問題ではない。
PS2でちゃんと基本ライブラリーつくってノウハウが蓄積されてる
ところは、できれば直接ハードを叩きたいと思ってるはず。
2DもDirectX並に高速化されますか?
>>732 XBOXは「その充実したツール類」が凄いのよ。PIXとパフォーマンスアナライザは
ゲームのボトルネックを速攻で探し出して瞬時に解決する事が出来る。あれを経験
しちゃうとハードを叩いてパフォーマンスを稼ぐのはちょっとダルくて出来ないな。
まぁ、今時、ハードを叩く暇があればCOOLなシェーダでも書いた方が喜ばれるよ。
735 :
732:2005/05/17(火) 05:12:44
>>734 それは、実行時のパフォーマンスに関連したツールでしょ。
それよりも、開発時間を短縮するミドルウェアの方が重要だよ。
まぁ、それもXBOX陣営はXNAとかいって、いろいろ充実してるようだけど。
ハードを叩くってのは、わざわざ既存のライブラリーにあわせるより
直で叩いた方が移植が手っ取り早いんじゃないかなぁと思っただけ。
決して、パファーマンスだけが目的じゃなくて。
それに、PS2だってパフォーマンスアナライザは十分充実してると思うよ。
とにかく、ライブラリよりミドルウェアの勝負だよ。
でも、XBOX陣営の方がXNAを売りにしてるから、一歩リードか。
OpenGL使うとDirectXに比べてパフォーマンス解析が大変になる
現状は問題。NVIDIAのツールがDirectX専用だったりするし。
OpenGL自身のせいじゃないけど。
開発用ツールや上位ライブラリ作ったりするのにはあんまり差は
ないと思う。
機能の差はジオメトリインスタンシングができないことくらいかな。
これもパフォーマンスチューニングの話ではあるね。
GLは関数名からしてキモ杉。
glVertex3dv(笑)
>>736 CELLのSPEには、個々に256KBも高速なメモリが乗ってるから
そこにジオメトリを保存しておいて、再利用・加工しつつGPUに
転送して描画みたいなことが常套手段になるんじゃないかと思われる。
PS3もPS2と同様に結局、CELLのSPEを使いこなすことがパフォーマンスを
最大限引き出すこつだと思うんで、もうすでにAPIがどうこうって
いう問題ではないはず。
しいていえばCgが関係してると思けど。
ジオメトリインスタンシングでぐぐると
GLは元々それっぽいことやってるんで
あんまかわんねーよってでるが。
740 :
738:2005/05/17(火) 11:19:13
今、PS3のスペック見たらGPUはPCと同じ様な物が乗ってるみたいだ。
トータルの演算性能でもCELLの部分は、10分の1程度しかない。
ちゅーことは、
>>738は大嘘ちゅうこった。
そうなると、OpenGLの実装の出来が重要になるのかねぇ。
こればっかりは、実際やってみないとわからんだろうな。
>>739 俺はジオメトリインスタンシングなんて言葉を知る前から
普通に効率がいいもんだと思っていたんだが・・・
ちなみに、細かいパーティクルみたいにオブジェクトを
大量に表示するときに一番ネックになるのは、
ジオメトリインスタインシングなんてのじゃなくて、
glPushMatrix()だよ。
これの実態はメモリコピーなんでかなり遅い。かといって、
glDrawArrays()にマトリックスを渡せるわけでもない。
個人的には、マトリックスを直接glDrawArrays()に渡したい。
DirectXはSetTransform()で設定するけど、これはコピーが
発生してないと思う。(多分)
OpenGLは、がんばって自前でマトリックスを作っても
glLoadMatrix(); ←これはコピーが発生。(多分)
glDrawArrays();
で、この時点でDirectXに負けてる気がするのは俺だけだろうな。
ジオメトリインスタンシングって
スキンメッシュのボーンマトリクスに使えそうだな。
頂点テクスチャによるそれはVS3.0以上じゃなきゃ使えないけど
これならVS2.xでもいけそうだし。
なんか閃いちゃった予感。
>>741 Matrixのコピーなんて通常は無視できるくらい軽い処理だと思うが。
GPU側にマトリックススタックを持っている実装もあるし。
DirectX方式のほうが実装の自由度が低いので高性能なGPUの性能は引き出し
にくい可能性もある。(多くのGPUがDirectX基準で設計されている現状ではあまり
問題にはならないかもしれんが)
>>742 DirectXの話しならスレ違い。
っていうか、ジオメトリインスタンシングを勘違いしてるような気配。
>>743 GPU側にマトリックススタックがあったら、それこそコピーが
遅くなる気がするけど・・・
まぁ速いCPUだと無視できるんだろうな。キャッシュ内で完結
するだろうし。
マトリックススタックを自分で設定できれば一番いいんだけど。
ちなみに、glGetFloatv(GL_MODELVIEW_MATRIX, matrix)でも
コピーが発生している。
これも、ポインターくれるほうがスマートだと思うけど。
マトリックススタックをひた隠しにするのは、実装の自由度を
上げるためなんだろうけど、あんまり気にするのも禿げそうなんで
やめておく。
746 :
デフォルトの名無しさん:2005/05/17(火) 17:14:05
glPushMatrix()
重くないよ。
試しにプッシュしてポリゴン書きまくったコードを書いてみたが、実際ほとんど違いは分からんかった。
それよりも頂点配列のバッファの受け渡しとかのほうが遥かに重要だったよ。
今のコンシューマ機ならコピーの影響なんかほとんどないんじゃないかね?
時代の流れからしてそれよりもソースの可読性だと思う。
それとも、もしかして描画しているポリゴン数に比例してコピーするサイズがでかくなるのかな。
DirectX、初期化が面倒で名前が嫌らしいとかか。
有利なのはメッシュを出すだとかフォントを出せるとか、環境が一通り揃っている事だろ。
GPU側もDirectXに特化して作ってるから単純に速いしな。
PS3では無論1対1で早くなるように作られるだろうから、xBoxに負けないくらいの描画性能のものが出てくるはず。
それと、DirectXがバージョンアップを繰り返すのは元々の設計だと不満が出たりしてるからじゃないのか。
OpenGLはその分数年間経っても大きく変わらない、定石のような設計だから変わらないんだと思う。
俺もミドルウェア次第だと思うに一票。
そういえば海外にOpenGLとDirectXを完全にブリッジパターンで隠蔽したのがあったよ。
あれで速度とか比べればくだらない討論なんて一発で終わるんじゃないか。
PCでならDirectXが早いに決まってると思う。
ビデオカードとかのパッケージを見てもDirectX!とか大きく宣伝してるし。
そっちに専念したほうが売れるんだろうしな。
結局中でやってる3Dの計算なんて一緒だし。
なんでDirectXに特化してるのかは裏事情とか流行とかいろいろあるんじゃないか?
とりあえず726のページは酷いと思った。
すまんsage忘れたorz
吊ってくる…
>>745 > GPU側にマトリックススタックがあったら、それこそコピーが
> 遅くなる気がするけど・・・
いや、OpenGLではいちいちGPUが保持しているマトリックスをCPUが知る必要がない。
つまり、GPUがスタックを持ってるならglPushMatrixはGPUに命令ひとつ送るだけ。
(実際にそういうGPUがあるかどうかは知らんけど)
>>744 スレ違いすまんが詳しく。
何がどう勘違いなの?
ジオメトリインスタンシングってのは
唯一のジオメトリをインスタンス毎に
ステータスを変えながら描画する手法でしょ?
通常、そのステータスってのはアフィン変換行列やマテリアルなどか。
このステータスにボーンマトリクスを含めるのは間違いってこと?なぜ?
よくわからんが、
ステータスを変えながら描画することと
ステータスにボーンマトリクスを含めることは
同じ方向を向いているものではなく垂直に交わっている気がするぞ。
いい表現だ
>垂直
GLのマトリクスAPIは重いという以前に仕様がウンコすぎるかと。
あれが使いやすいって奴はただのマゾだろ。
あと、個人的にウンコ臭が漂ってるのはglEnable/glDiableだな。
DirectXなら
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE , material->alphablend );
で済むところがOpenGLだと
if( material->alphablend ){
glEnable( GL_BLEND );
} else {
glDisable( GL_BLEND );
}
と泥臭い事になる。まぁこれは好き好きかな、とは思うけど。
でも、OpenGLで一番最悪なのはpbufferだな。仕様考えた奴、脳みそどうか
してるんじゃないかと思う。
>>753 なんかそれむしろGLの方が個人的にとっつき安いんだけど・・・・。
>>754 それだけならいいんだけど、全部のコンテキストがglEnable/glDiable
で表現できる訳でもなく、例えばご存知のようにブレンドを設定する
為には
glBlendFunc( hoge );
つーAPIが用意されている。この辺は現在、拡張に拡張を重ねた
結果、コンテキスト設定の全貌を理解する事が困難になっている。
DirecXならSetRenderStateのHelpを引くだけで全てが理解できる。
しかも、DirectXと違って「初期値」って概念が存在しないので
前に立ち上げたアプリケーションの値を引き継いでたりしていて、
アプリケーションで全てのコンテキストを理解して設定しないと
酷い目に会うのよ。
まぁDirectXのレンダーステートも謎仕様が残ってたりするんで
一概にGLが糞とも言えないけど。
756 :
デフォルトの名無しさん:2005/05/18(水) 01:20:17
PBUFFER糞って言ってるヤツ、同一人物だろ。
確かに糞だがそこまで糞糞言うほどか?
あと、Direct3Dマンセーな奴らは正しくはD3DXマンセーだろ。
(material->alphablend ? glEnable : glDisable)(GL_BLEND);
>>755 > しかも、DirectXと違って「初期値」って概念が存在しないので
嘘ついちゃいかん。例えば glBlendFunc なら (GL_ONE, GL_ZERO) が初期値だと
仕様に明記されている。その他の関数やステートも同様。
DirectX は確かに整理されている部分もあるが、その反面旧DirectXの知識が
すぐに無駄になる。WGF 2.0世代はまた知識をリセットする必要がありそうだ。
759 :
デフォルトの名無しさん:2005/05/18(水) 09:50:49
>>758 755を養護するわけではないが、ドライバが腐ってて
初期値がパーなケースがあるかもしれん。
>>759 OpenGLとは何の関係もないぢゃないか.
どこのベンダーだろう?
OpenGL ES 1.1のSpecPDFを流し読みしたけど、気持ちいいぐらい
機能を切り捨ててるね。
基本的に、OpenGL1.5を変更せずに削減だけしてるけど、
これは見といたほうがいいと思うよ。
そんで、ESがサポートしてない関数は極力使わないようにするのが吉。
ま、削減されてる機能は使ったことないのばかりだけどw
使用される頻度の低いものが切り捨てられていると?
>>762 基本的にそういう感じっぽい。多分、ゲームがターゲットだから
ゲームに必要なさそうなものが削られてるんだと思う。
それと、マトリックスパレットの機能が追加されてる。
スキニングとかターゲットモーフィングとかは固定機能で実装
されてるほうが消費電力が少くなくて済むからそうしてるんだろう。
>>761 こういう極力使わないように〜とか
こんなこと考えさせられるよりは
DirectXのように、その機能は使えませんからバ〜カと
言われた方がよくね?
>>764 確かに言われないとわからない馬鹿にはDirectXのほうがいいね。
問題はその逆が真かどうかだな。
>>753 constでテーブル化すればif文使わずに済むんじゃないか?
さっさとビルゲイツ死なねーかな。
求心力を失ったMS、引いてはDirectXは、いずれOpenGLに帰すこととなるのさ。
そう、Fahrenheitの復活。
>>757 確かにこういう使い方できるね
俺、何故か三項演算子好きなんでちょっと嬉しくなった
しかし面妖なコードだw
OpenGLと関係ないレスでスマン
>>759 NVIDIAはドライバのバージョンで初期値がかなり腐ってる事あるね。
かなり苦しめられたことがある。ATIは触ったこと無いから解らないけど
海外のフォーラム見ると結構同じようなケースがあるらしい。
そういえば、OpenGL/ESってPSPで使えるんだったっけ?C++をサポート
出来ない環境ではOpenGLも悪くないよね。
PS3の影響でOpenGLが盛り上がりそうな予感。
しかしDirectXより遅いんじゃないの?
またループですか。
しかし何でGLなんて使ってんの?
Linuxだから?
Windowsで使ってるとしたら酔狂としか思えん。
PS3がなければ、もはやGLにしがみついてる理由はないんだが。
結構ゲイシ好きなんだが、確かにFahrenheitがポシャらなければなぁ…と思わずにはいられない。
>>772 フラグメントシェーダが楽なのでOpenGLつかってる
GLの方が色々無駄な初期化が無くて、いきなり実効的なポリゴン処理を書いていけるから好き。
DXUTがある今となっては
>>775みたいなのも時代遅れとなってるんだけどね。
個人的にはglBindTextureから始まるテクスチャー周りのオペレーションが凄く
古臭く感じるけど、みんなはどう?
いくつも、コンシューマーゲーム機用のライブラリを見てきたけど
OpenGLにそっくりだったり、影響を受けてるようなものがほとんどだったよ。
まぁ、OpenGLはシンプルだから参考にしやすいってのがあると思うし。
PS3はやっと*公式*にOpenGLをサポートしたってだけの話し。
クラスライブラリならDirectX、関数ライブラリならOpenGLベースで設計するんじゃない?
よく知らないけどゲーム開発者っていまだにC++使ってなさそうなイメージだし、OpenGL
スタイルの方が喜ばれるんじゃない?
>>778 コンソール系はc++でクラスベースでバキバキ作るとメモリフラグメントして泣けるからなぁ。
DirectXとOpenGLという2つのAPIが存在するということは、
この業界にとって非常な不利益となっている。
(1) 1つのGPUにDX/GL双方のAPIをサポートすることによるHW開発力の分散
(2) 1つのGPUにDX/GL双方のパイプラインを実装することによるトランジスタの無駄な消費
(3) 1つのドライバにDX/GL双方の機能を実装することによるSW開発力の分散
(4) DX/GL双方の技術者の分化による技術の分散
これらの諸問題を解決する手段は唯一、Fahrenheitの復活なのである。
(1) Fahrenheit PS (for Professional Systems): 学術研究やCADなどのハイエンド向けバージョン
(2) Fahrenheit CS (for Consumer Systems): ゲームなどのコンシューマ向けバージョン
(3) Fahrenheit ES (for Embeded Systems): モバイルなどの組み込み機器向けバージョン
ファーレンハイトは、3D APIの未来系である。
>>780 MSにとってもARBにとってもメリットがないからなぁ
いつの話だよ
想像してみよう。
球体の真上から水を垂らすと、それはいくつかの道筋に別れていく。
だが、どうだろう。
分散した水滴は、やがては再び一つの場所に帰していくではないか。
そう、分化した3D APIが帰る心のふるさと、それがファーレンハイトなのだ。
始点
↓
○←赤道
↑
終点(ファーレンハイト)
>>780 まとめて二年も立たないうちに、MS独自企画でまた枝分かれだろ。
「まとまる前に」の間違いだろ。
789 :
デフォルトの名無しさん:2005/05/19(木) 21:13:21
確かにOpenGLのテクスチャまわりのストイックさは感心できない。
ファイル読み込みくらいサポートしてくれっての。
790 :
デフォルトの名無しさん:2005/05/19(木) 21:19:58
>>778 DirectXはコールバックつかっててクラス化しにくくない?
staticにすればいい
792 :
デフォルトの名無しさん:2005/05/19(木) 22:37:53
GLUTのインストール方法を教えてください
VS2003です
あちこちで公開されているOpenGLのサンプルコードのテクスチャ読み込み部分
なんか大半がDDS使ってるからな。BMPもMSのフォーマットだし。
そういえばSCEAがつくってたXMLベースのモデルフォーマットってどうなったんだろ。
DDSってDXT1とかの圧縮もそのまま使える?
OpenGLってテクスチャ関係弱いよね。
画像ローダーなんて作っちまえよ。
BMPやTGAなら単純なんだから自力で出来るだろ。
JPEGとかPNGだってDLL使えばすぐなんだから。
GLのテクスチャとはまったく関係ないな。
799 :
デフォルトの名無しさん:2005/05/21(土) 00:45:36
801 :
デフォルトの名無しさん:2005/05/21(土) 06:00:28
まともな車輪を発明してください。マジで。
車輪も改良の歴史が結構長いですよ。
そうでもないよ
タイヤ部分を車輪に含めるかどうか。それが問題だ。
そもそも車輪というのは、接点からの摩擦力の反作用によって加速度を得ているわけだが、
これは、氷上などの摩擦係数の低い路面では全くの非力であり、かつ危険である。
スパイクタイヤを使用するという手段もあるが、これは粉塵が発生するために、法律で使用が禁止されている。
ttp://www.houko.com/00/01/H02/055.HTM 我々が次に発明すべき真のもの、それは反重力装置に他ならないのである。
太いし全部ある
806 :
デフォルトの名無しさん:2005/05/21(土) 14:38:30
ボルトアクション型ライホーは機構的に完成されまくっていて、
もはや改良の余地はないと言われているが
そんななか出てきたのはストレートプルアクション型ライホーであった
同じように、もう完成されていると言われて自分が作る意味がないように思えるものでさえ
自分でやってみることで新たな発見があるかもしれないし、
少なくともいい経験にはなる
そうすることで、zlibの脆弱性を発見できたり
zlibを使わないで自分でやることでzlib脆弱性に対する影響を受けなかったりと
いい面もないではない
車輪なんか使うな。脚を使え。
現代人は実に歩かなくなっているため、足腰の筋肉の衰えが著しい。
ま、お前らは真ん中の脚を使う機会も少ないだろうけど。
808 :
デフォルトの名無しさん:2005/05/21(土) 16:19:03
zlibの脆弱性ってナニ?
車輪に対して、もう改善の余地はないと言っているのは
モノを知らないド素人だけ。
理想的な車輪とは何か?
ただ丸いだけではいけない。可能な限り軽く、それでいて強く、
走行に支障がない程度まで抵抗を減らすことが必要。
これらは、まだどこのメーカーも達成できていないから、
再発明と言えるまで熟成されているもんでもない。
プログラムもおんなじようなもんで、
「定石」はあっても「神の一手」はまだ見つかっていない。
環境が変わっているとしても、そのどれに対してもパーフェクトな
これ以上は最適化できない!というのは無い。
きじゃくせい
税弱性
zlibのバグって修正されてなかったっけ?
二重開放は二年位前に修正済み
ところが今度はVeryVerylongfilename(エラごっつ長いロングファイルネーム)を持つファイルに対しての脆弱性が出た
814 :
デフォルトの名無しさん:2005/05/21(土) 17:50:44
テラワロス
これだからオープンソースわwwwwwwwwwwww
815 :
デフォルトの名無しさん:2005/05/21(土) 18:13:32
オープンソースは問題が明らかになってから修正されるまでは確かに早いが
ソースが公開されてしまっているが故に解析されやすい
また、頻繁に修正を繰り返すためエンバグもしやすい
また商用と異なり、メンテ人員の意識レベルの低さから新たな問題へと繋がりやすい
私の下半身は常にオープンソース。
まぁ、MSのZIPフォルダもこの前大問題起こしてたけどなw
任意のコードをスタートアップへ登録出来ちまうバグ
MS限定じゃないけどな。それ。
>>813 そんな長いファイル名をつける馬鹿の方を修正してしまえ!
で結局DXT1とかの圧縮テクスチャも標準では扱えないわけね。
DirectXに頼らないテクスチャ圧縮を用意してもらいたいもんだ。
>>820 別にDirectXに頼らなくてもDXT1テクスチャくらい作れるし、DirectXだってすべてのGPUで
すべてのフォーマットがサポートされているわけではないので、基本的には同じことだよ。
Cgとかプログラマブルシェーダー系って使った事無いんだけど
GPUで演算・処理したフラグメントやVertexな関数の変数をOpenGL側に戻す事って可能なの?
>>822 現状ではGPUはグラフィックスプロセッサなので
出力はテクスチャのみ。
よって、テクスチャという形で返せるのみ。
テクスチャ単体でfloat4やchar4などの単一の変数として、
マルチエレメントテクスチャを使えば構造体もどきを返せる(様になるだろう)
Direct3Dではね、OpenGL?シラネ
>>822 PS3ならRSXで処理したものをSPEで処理できる
OpenGLは、2Dも高速化してくれますか?
次の方、どうぞ
>>825 私の理解する限りにおいて、OpenGLは3Dにしか対応していません。
3Dをうまく使って2D表示のように見せることは可能ですし、適切に使用すれば高速化してくれるでしょう。
>>825 2D ライブラリでも OpenGL をバックエンドに使って高速化してるのあるよ
Cairo とか Quartz とか
pixel to pixelを正しく行えるのはOpenGL1.3以降だったりする
いまどきQuadroFX4000やGF6を導入してない所なんかあるわけねえだろ。
あったとしたらそいつは失格
しかし盛り上がらないね。OpenGLって。
盛り上げたいんだが、ネタが拡散しすぎて話題を共有できない=盛り上がれない
自由度を求めるばかり、下限を定めて足並みを揃えることないがしろにして、業界を啓蒙する努力を怠ったツケを
払わされているのが現状。
最初はへっぽこ、後にOpenGLのデッドコピーを経て、結局OpenGLを抜いてしまったDirectXを見るに、
なまじ最初の設計が完成されていた分、パラダイムシフトに柔軟さを示せなかったのも悪かった。
ステートマシンの作りが実装依存すぎて、生のままではオブジェクト指向プログラムとの親和もよくないし、
かといってOpenGL「公式」なクラスライブラリが存在するわけでもない。
色んな意味で時代を敵に回してしまったが、かといって役目を終えることが許されたわけでもない、
そんな苦しさにのたうちまわっているのが、いまのOpenGL。
なんにせよUNIX系統だとこれしかないし
何にせよゲーム系は未だにGL多いし。
idSoftwareのカーマックさんがDirectXでゲーム作るようになったら、乗り換え考えるよ。
>>832 苦しさにのたうちまわっているおまいだけ。
まともなプログラマはちゃんと OpenGL を使いこなしてる。
>>832 総じて、レベルの低い奴ほどAPIをけなす事が多いな。
ろくに3Dの現状を知りもしないでよくいうよ。
これからは、ミドルウェアが重要だっていってんのに、今だにAPIレベル
でぐだぐだ言ってるやつもいるんだな。
>>832 ちなみに、OpenGLは純粋に3Dグラフィックを表示するためのAPIなんで
OpenGLとDirectXを比べるのは、カレー粉とカレールーを比べるような
もんであまり意味がないかと。
あと、Open InventorとかJava3Dは、シーングラフの概念を実装してる
オブジェクト指向のクラスライブラリで、SGIもSUNもARBに加盟してる
から、公式に近いものだと思う。
832はどうでもいいが、835の読解力には参るな
>>837 言い得て妙。 > カレー粉とカレールー
つか、DXは算術演算もテクスチャ読み込みもサポートしていて便利だが、
それらの処理はAPI内部に隠蔽されているから、つまらん。
>>839 NEC、何を血迷ったんだ…。しかもハイエンド市場て。
>それらの処理はAPI内部に隠蔽されているから、つまらん。
つまらんて…w
一応、DirectX7くらいまでで実装された算術演算の内部処理のソースコードは
公開されてるはずだけどね。
重たい処理の大半はSSE最適化とかされてるから、公開しようもないというか、
公開してもらっても困るというか。
アカデミックな分野ではまだ当面生き残りそうだが、その先が見えないのがなあ。
最適化されてたら公開されると困るというのがよくわからん。
>>841 だから、MS以外のゲーム業界じゃこれからも使われるっちゅうの。
PS3とか、ケータイはESを使ったりとか。
結局、OpenGLを否定するパターンは2通りで、
算術演算とか機能が足りないってのと、アーキテクチャーが古いってのだな。
アーキテクチャーが古くても、DOOM3とかnVidiaのデモとか
OpenGLでも最先端いってるから能力的に劣ってるわけではない。
あと、機能が足りないのはそのとおりで、それはOpenGLのみ
で完結することを目指してるわけじゃないからしょうがない。
結論としては、ライブラリを探すか作るかしろってこった。
ドゥドゥドゥーム3でもいいのだが、
D3のリテールそのままじゃちょいとインパクツに欠ける。
ここはクロニコーオブリディック Escape from Butcher Bay
特にEye shine有効後の画像を見ると
OpenGL1.2までしかできない日本人が見ると腰を抜かす。
お。久しぶりに「日本人は1.2」くん登場ですね。w
_,.. -─ ─-、 しァ
/!/ヽ‐'" / イ⌒ヽ
,l_/ l l / /! ヽ
|l /lハ// V| ! ハ
| l / イ ヽヽ/Vl !
| ハVヽト`ー- ' イ/ ,ィ/! \ ∧l |
、ト、 \ ヽー- ' _,..ィ/ // ハ ト、 l!
\ ヽ_,.メ、<イ_/__,.._-=ニ-ヽ _,/
ヽi`、| 、‐rッヾ =|二|-=_rッァ `}',.} r{
{ ヽ!  ̄ シノ! ヽヽ  ̄ //レr ! / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽヽ!`ー--‐'´/| ` ー--‐ ' /./ r' | 久々にワロタ
.i"ヽ;:...:::/ ゙'''=-='''´`ヽ. /i l" < 講釈は凄いが出来るのは1.2までだという
.| ::゙l ::´~===' '===''` ,il" .|'" | のが日本人なんだよな 今の新参は日本人の
.{ ::| 、 :: `::=====::" , il | | 実績を知らないから困る
/ト、 :|. ゙l;: ,i' ,l' ノト、 \________
/ .| \ゝ、゙l;: ,,/;;,ノ;r'" :| \
'" | `''-、`'ー--─'";;-'''" ,| \_
t、,女 t(ツ||i;;;;;;;;;;;;;;;i;;;;";;;;;;;;;;;;;;;;;;;|ツ;;;i、、、i;、~'-、;;;;;、))
、、ノ(iツM;;;;|;;;;;;;;;;;;ii;;;;|i;;;;;;;;;;;;;;;;;;;;;;;;;;;;、;;;;;;;|;;;i |;;;t'ヽ三彡
// り";;;;;;;;;;;;;iヽ;;;;;;;;tiii;;;;;;;;i|;||;;;;ii;;;;itソ;;;;リ;;;;"ヽ;;;;;ir'"
ヽツキ;;;;;;;;;;;;;;;;;;ミ人、、、ミ;;;;;;;;tヽ、;;ヽ二リ;-、t;;;;;;;レ;;;;|''" / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ー7;;i|、;;;;;;r、ミr'";;;;;;;;;;;;;;;~~' リヽ|i";;;;;;;;;;;;;;;シi;;;;;;、i|) | 久々にあべし
リ;;;;||t;;;;〈 ミ "-ー:ェェヮ;::) f';;_-ェェ-ニ' リ;;;;ii|j | こういう強敵(とも)と死闘を演じたのが
(;;|;;;ヽ、;;;;i  ̄´.::;i, i `'' ̄ リ; イ < 昔の北斗なんだよな 今のお前は
フ;;;;;ヽ;;;i, ::. ....:;イ;:' l 、 ,'r';;;i | もう死んでいるから困る
,r''ヽ `(;;;;;;;;i~t ,:...:::/ ゙'''=-='''´`ヽ. /"彡|、 \________
. ii i t;|;;;;;i ::t ::´~===' '===''` / {{ヽt ヽ ,,, 、 --ー '
. i リ 't;;;;i :ヽ `::=====::" /:: j ノ ;;リ''ヽ、 ,, 、- '' "~:::::::::::::::::::::
i '"| r'~ヽ, ヽ、i ::ヽ l;: ,i', ,':: y" "ノノ フンゝ'":::::::::::::::::::::::::"""""
リ i ,,/ i''''"" ̄ ̄ ̄>'''"~t |i ::ヽ,\ , イ/:::::、-'" ,r"/zr'":::::::::::::::::"""" "
_,/ :::::"i" / '-、ノ,,,,,,、ニ、 ,、-'";;;r''"::::入 ii;;::::::::ヽ, /::: '" , ,r、" /"/""t ー⌒) ""''
,/ " レ"- '"ii´ ,リ,,""r" ::::::::/:::t ヽ::::::::::~''ーー ''''", '" / r"/// ・ . ⌒
" ,、-'i" ,、-ー '''ヽ"/r" :::::;;/ t ヽ::::;;;;;:::::;;;;,r'" ,, ,、-'"" "/ ~
>>838 日本語壊れてて、しかも具体的に何も言えてないんだから
よほど図星突かれたんだろ。
>>835-836 つか、そんな酷い誤読をするコミュニケーション能力に欠ける奴は、
プログラム以前に社会人として生きて行けると思えない。
何かムキになってる香具師が約一名いるな
ムキになってる奴を演じる作戦かもしれないから2chは恐ろしい
もしくはそう思わせ(ry
2chの奥が深いのは分かった
彼女の穴は、以外と深かった。
ml3t@Zwjeljdq>
>>858 彼女がアナルプレイさせてくれるなんて羨ましい限りだな
チラシの裏
>>832って、「OpenGLは難しすぎて漏れには使えませ〜ん!」
なんて一言も言ってないよな。
それに対して、マトモなプログラマなら使いこなしてる!って
何言ってんだとは思った。
どこまで行けば使いこなした事になるんだろう。
そう自分で思っちゃったら進歩は終わりなんじゃないかな?
>861
hogehogeはどうやったらできるのですか、とか
掲示板なんかで質問せずに自分でドキュメントや
英語サイトを調べて作れるようになったら
使いこなしてると言っていいのでは?
やっぱ、DirectXのリファレンスの充実具合と氾濫するサンプルコードと
情報量は魅力的だぜ。
あと、DirectXのFXファイル相当の物が無いとかなり辛いっすね。
アプリケーション作ろうとするとシェーダの管理だけで身動きできなくなるぜ。
つまり、Cg使えって事か。
864 :
832:2005/05/26(木) 06:07:47
正直シマンカッタ
皆仲良くしてー。
865 :
デフォルトの名無しさん:2005/05/26(木) 07:57:03
VC++toolkit 2003でOpenGLを動かす方法を教えてください
そのままで動くけど
サンプルコードはどこかにありませんか?
870 :
デフォルトの名無しさん:2005/05/26(木) 12:15:16
スポーツに代表されるような
「苦しければ科学的に根拠がなくても何でもいい」
・うさぎ跳び
・スポーツやってる最中は水を飲んではいけない
今はそういうような「根性」の時代ではないのだが
程度の問題や、プログラムに限ると難しいほうでやったほうが
力は付くだろう
至れり尽くせりの言語でやるとロクにバグ取りもできない、
最適化もできないド素人が生産されてしまう
そんな事したら、くだらない所に拘って全体の見通しを立てれない馬鹿が育つだろ。
OpenGL + SDL環境で作っています。
OpenGLでDirectXのスプライトのようなことができる方法にはどんなやり方がありますか?
自分は、
SDL_Surfaceに画像を読み込んで、
SDL_BlitSurfaceで画面に貼り付けようとしているのですがうまくいきません。
SDL_GL_SwapBuffersのあとにSDL_BlitSurfaceではりつけています。
貼り付けたまま何もしないと貼り付けが反映されず、
SDL_UpdateRectを呼ぶと、プログラムが強制終了します。
>>872 そのどこにOpenGL使っているのかと(ry
スプライト表示だけSDLでやりたいという意味なら
>>874の言うとおりOpenGLでビルボード表示するのが定番。
I got a sixth sense that tells me you ain't worth six cents. haha
>>873 >>874 >>875 ありがとうございます。
テクスチャとして貼り付ける方法は一度やってみたのですがテクスチャがぼやけてしまいました。
SDLスレにて聞いてみることにします。
単純にポリゴンを出すだけなら確実にOpenGLの方が楽。
ポリゴンを出すところから更に踏み込んで習得しようとするなら断然DirectX。
下手をするとOpenGLは3Dプログラムを舐めた程度で終わっちゃう可能性が
高いのよね。
ポリゴン自体に発展も糞も無いだろ。
シェーダー使い出したら、全然関係ないぞ。
問題は日本語の文書が無いことにある
英文は読めば誰でも読めるだろうが、
脳内で無意識のうちに英文から日本語に変換する作業が入るから効率が悪い
3クロックくらい余分に食われるに等しい
レンダリングなんて、3Dプログラミングの入門でしかないわけだし。
サンプルコードが多いDirectX使うか、つかえる場所が多いOpenGLを選ぶかは
勝手にすれば?
今日、草なぎがドラマで「OpenGLによるCGアニメー…」てタイトルの本読んでたんだけど、そんな本あるんですか?
885 :
882:2005/05/27(金) 01:29:39
>>883 あ、ソレだ!なんかすっきりした!ありがとう
ポストエフェクトではXBOX360の圧勝だね。
PS3はSPEにやらせようと思ってもバスがネックになる。
>>881 DirectXのサンプルコードは多いかもしれんが、WGF 2.0が出たらおそらくパーだ。
今だってDirectX 7以前のサンプルコードなんて何の参考にもならんしDirectX 8の
サンプルですら今では機能が削られてたり、引数が変わってたりで使い物にならない
ことが多い。
もちろんプロであれば、最終的には両方使いこなせなければお話にならないが、
最初に学ぶのであればはOpenGLをお勧めしたいね。
NVIDIAはFXでスケジューラやってたし、
GF7でスケーラブルパイプラインがまた復活する
まあこれらは演算器の役割は決めてあるものの、
完全スケーリング製品は一応抜け目なく試してはあるという
なんでWGFに沿った作りをしないかというと、
OpenGLがあるため。NVIDIAはOpenGLに入れ込んでる
OpenGLもWGFと同じ仕様にならない限り無理でしょ
>>887 WGFの上にDirectXがラッパーAPIで載るんだけどな〜。
あとOpenGLもWGFにラッパされて乗るよ。
当然、ネイティブなWGF叩いた方が早いけど。
OpenGLだってOpenGL/ESに移ったら覚えなおす事多いしね。
891 :
デフォルトの名無しさん:2005/05/27(金) 06:34:37
3Dモデリングソフトからの取り込みはどのような方法でやるのが一般的なのでしょうか?
独自のコードを書くしかないのでしょうか?
せめてxファイルのようなものがあるとよいのですが
>>891 「一般的なものはない」というのが一般的。
言葉遊びのようだが、文化の違いなので仕方ない。
強いてあげればDXFなんかが一般的な形式だが、.xファイルとは表現力の面で
比較にはならない。
.xや、その他比較的メジャーとされる3D製作ソフトのフォーマット(3DSやLWO等)から
読み込みをやってるサンプルなんかは、ググるとぱらぱら出てくる。
特にLWOからの読み込みについてはライブラリ化して公開してる会社がある。
場合によってはスクラッチするしかないが、この辺をまずググって調べて
当たりをつけてみてはイカガ?
894 :
872:2005/05/29(日) 15:41:41
SDLスレにて無事解決することができました。
>>893さん
ありがとうございます。
もう少しはやくレスを見ていれば・・・。
>>891 XファイルはDirectXに依存しているわけではないから、D3DXを使ってXファイルを
読み込んで、OpenGLで描画するという方法もある。
ローダくらい自分で作った方がいいとおもうけどな
そんなこと言ってるからOpenGLが流行らんのだ、この〜!!!
OpenGLは低レベルなグラフィックAPIに徹してほしいから、
モデル読み込みやらテクスチャ読み込みの機能はいらないよ。
サンプルコードはネット上でゴロゴロしてるし、自分で書いてもたいした手間じゃないでしょ。
技術の後追いには、もう疲れた。
やれクックトランスの照明モデルだの、
やれデファードシェーディングだの、
やれパーセンテージクローサーフィルタリングだの。
フェードアウト?結構。
もう、純粋にプログラムが価値を決める時代は終わった。
これからの時代は、テクスチャやモデルといった、メディアの良し悪しが価値を決める。
アンリアルエンジン3.0が良い例だ。
プログラムとしては、革新的な飛躍は一切ない。単なる一次関数の進歩止まりだ。
だが、メディアは指数関数的に進歩している。
ロードオブザリング並みの絵をリアルタイムでレンダリングできるようになったとき、
果たして、プログラマに残された道はあるのだろうか?
嗚呼、古き良きソフトウェア時代。
言いたいことは分かる
努力が実って、俺もプログラマと言うより、プログラムも分かるデザイナーとして認められるようになってきた
こっちも茨の道なんだけどな…
>899-900
⊃バーチャルリアリティ
こっちにおいで
フォトンマッピングとかな。
毎年毎年むずかしくなっていく、、鬱だ、、
UltimaとかWizardryとか今でいうと中学レベルの
プログラムで一発当てた先人が羨ましい。
Jim Blinn曰く、
「3DCGで最も難しいことは、先行されていない新規の研究を見つけること」
John Carmack曰く、
「3Dゲームは、もうプログラマ一人ではどうしようもない時代に達している」
なんつーか、もう3DCGは煮詰まって水分が蒸発しちゃってる感がある。
煮詰まって採れた塩から美味しく料理を作るのは別の人間の仕事ってところか。
まあ、結構なことなんじゃないか?
今でもWizは面白いと思うよ。
UNIXでローグをやっていた頃もキャラクタ文字だけで
楽しんでいたし。見た目の派手さばかりを追いかけてしまったのが
今のゲームの衰退原因でしょ。塊魂なんて見た目はたいしたことないけど
ゲームとしてのおもしろさは抜きんでているよね。こういうゲームを
作らないとならんよな。
確かに、黎明期なら大学ドロップアウトしても独学でやっていけたが
最近だと高等な数学・物理の知識はもはや常識だからな。
そういう意味では、若い人が新しいスタイルで台頭してくる機会ちゅうのは
昔と比べると非常に少なくなってるのかもしれん。
クリエイティブな事は高度な学力以外にアイデアもあるんですよ。
ちなみに、これ以上やる事が無い ってのは言い訳で、実際には無限にあるわけで・・・
まさに発見されてから『そんな事かよー、それなら俺だって〜』とまさにコロンブスの卵状態になるわけです。
はるか昔に作られて、今じゃ当たり前になり、 『その程度で昔だと活躍出来たのか』 とか言ってる人は、永久に伸びないと思う。
>>899 表示部分が枯れてきても、動かす部分や判定する部分はまだまだ枯れてないでしょ。
また、そういう大量のメディアを管理できるシステムを作るのもプログラマの仕事。
まあ、オリジナリティというか、独創的なアイディアは基本的に日本人には無縁だわな。
精密化・大量生産ばっか目指してきたし、教育も押し付け詰め込みの横並び主義だし。
つか、自分の子供にはまず日本の教育は受けさせたくない。
お話中すいません
ポリゴンの裏表(カリング)は、視線ベクトルと面法線の内積を取るだけでは判別できないのでしょうか
んなわけない
912 :
910:2005/05/31(火) 20:36:51
>>911 レスありがとうございます
>>910だけで可能という事で良いんですよね?となると他がまずいのか・・・
View行列のZ軸成分を取りだして視線ベクトルとし
それと面法線とで内積を出して、その符号で裏表を判定しています
原点近くのポリゴンだと問題なく正確に裏表が取れるんですが
原点からずれると微妙に判定が不正確になり困ってしまって
アドバイス頂けると助かります
視界っていうのは、一本のベクトルではなくて
いうなれば三角コーンのような形をしている。
ゆえに視線から対象が外れるにつれ
視線ベクトルとのズレにより正確な裏面判定が出来なくなる。
と想像。
これを回避するには、射影空間に変換してからカリングすればいいと思う。
その際、法線は逆転置行列で変換すること。
同人ゲーはまだ余地がある
商用ではないことがわかっているから、
個人やサークルから3Dモノが出るとそれだけでギャーピー騒ぐ
よくできてるが細胞フォーミュラなんかがいい例
まず創造性の発揮以前に、カネを稼いで喰うことが前提となるわけだが。
916 :
910:2005/05/31(火) 22:23:52
>>913 お付き合いありがとうございます
アドバイスに従って、まずViewProjection行列を転置し、それを使い面法線を射影空間に変換して
射影後の面法線のZ値で向きを判定してみました
ところがやはり同じ問題が起きてしまって・・・
しかも、裏表が変わるタイミングが、912と全く同じでした
もちろん、お二人が正しいと思いますので、もう一度洗い直してみます
稼ぎたいなら中毒性のあるもの(タバコ・酒・ギャンブル)
か
生きていくうえでなくてはならないもの (食い物・燃料系統・電気ですかー)
か
エロ
簡単に稼げるのはこんな程度
ピログラモなんかやめちまえ
918 :
913:2005/05/31(火) 22:48:45
>>916 わりぃー嘘言ってた。忘れて。
射影変換ってのは、遠近の見え方を正確に表してる訳じゃなくて
単なる近似に過ぎない。View空間から射影空間に変換しても
相対的には何も変わらないので、結果が同じなのも道理。
ただ
>>913の考え方も外しているとも言い切れないので
その方向で考えてみるのもよかよか。
昔某ゲーム機では、
3頂点を視野座標変換->
変換された頂点3つから外積とって法線算出->
Zの方向で判定、なんてことしてたっけ。
ビュー座標系で考えるとわかりやすいんでないかしら。
法線はビュー行列の逆転置で変換して、視線ベクトルは面の
位置によって変えないと。
真正面の真横向いて見えない板は、横に移動すると見えるよーな。
射影変換後の3頂点のXY座標だけでわかるはず。
>>909 日本のゲーム(アニメ)は独創的で、世界に君臨してるわけだが。
知ったか振りもいいとこで、OpenGL以前に学ぶ事がたくさんありそうで、
当分OpenGLスレにくる必要はないだろう。願わくば永久にこないでほしい。
その独創的さ加減は「ニンテンドー」に代表される一部ブランドのみが支えていて、
ぼちぼち先進国としては野放しにされすぎてるゲームやアニメの異常なエロ、グロ、ロリコン表現が
叩かれ始めていもいるわけですが、明らかにスレ違いですねそうですね。
つーか、今のアニメなんて、かつての日本のアニメの模造品ばっか
>>921 うお、ほんとだ。
なんで910が面法線を使おうとしてるのかわからないけど、
3頂点の出現順が右回りか左回りか決まってなくて
面法線が別に分かってるっていうこと?
>>921 そういえばそうだった・・
俺もカリングは面法線でやるものだと
ずっと思ってたよ
>>922 コンテンツではなく技術的側面からの独創性を言っているわけだが。
これだから文系は馬鹿だ。
それならそうとハッキリ書いてくれ。
分かるだろうという思い込みで文章を省略されたら誤読するヤツが出てくるのは当然だろ。
関係ないはなししは他所でおねがいしますね。
>925-926
というか、面法線のZが正か負かが、3頂点のXY座標からわかるわけだが。
>>928 GLスレで技術ではなく、コンテンツの話が出てくる前提になってる方が変だと思うが・・・
はあ?誰がインポテンツだとこの野郎!
オメーだよオメエ!!!!
934 :
910:2005/06/01(水) 17:13:39
皆さんレスありがとうございます
>>925 最初に思ったのが、折角頂点の射影変換をOpenGL(GPU)に任せているのに、
CPU側で再度、頂点の射影変換を行うのは二度手間になっちゃうかなという事なんです
そこで面法線を生かせないかなと
もしかしてOpenGLで射影変換した後の座標を取得する方法があるんでしょうか
そうだとしたらすいません・・・・
面が表か裏かは
レイ始点と面法線との内積とってその値が
正か負で右回りか左回りかがわかる
レイ始点はカメラのワールド座標上の位置ベクトルだ
936 :
910:2005/06/01(水) 19:10:06
>>935 (レイ始点 - 面の頂点の平均位置)ベクトルと、面法線ベクトルとの内積
という感じで良いのですよね?
一応それでやってみたところ、精度が完全になりました。ありがとうございました!
長々すいませんでした。
OpenGL で3Dの文字列を表示するにはどうすればいいですか?
>>937 OpenGL fontでググれば色々出てくる。
TrueType等のベクターフォントからメッシュを作成して描画するのが一般的だな。
>>938の言うとおり、サンプルはググれば相当数がみつかると思う。
フォントは著作権とかにうるさい場合が多いから、むしろそっちの解決の方が面倒だったり。
スレ違いの話題だけどね。
>>936 >レイ始点 - 面の頂点の平均位置
これだといらない手間(平均)がかかってる、法線との内積で面の向きを判断するだけであれば面の頂点のどれか一つで大丈夫だよ。
OpenGL2.0対応Linuxドライバーキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
あ、NVIDIAのはなしね。
EXT_framebuffer_objectがついに使える。
http://www.gimlay.org/~andoh/opengl/oglfaq/transformations.htm GLFAQの文章がどうもよくわからないんですが、下記の文章を理解できる方いますか?
9.085 glFrustum() を呼ぶときに、gluPerspective() に合わせるようにするにはどうすれば良いですか?
glFrustum()呼び出しの眺め(fov)のフィールドは下記です:
fov*0.5 = arctan((トップ底)*0.5 /それ)の近くで
底==-以来、() gluPerspectiveなので、対称的な投射 that のためのトップが産出します そして :
トップ=日焼け(fov*0.5)* 近く
底=-トップ
左右のパラメータは、トップ、底、および面であり、単に機能します:
左=面*底
右=面*トップ
>>942 GLUのソース嫁。
でも、透視変換の数学的な側面がちゃんと理解できてないと、
読んでも多分わからんだろう。
ていかその文、質問の内容自体がよくわかんね。
gluPerspective() と同じ内容の設定を glPerspective() で確保するには
どうしたらいいのかって話なのか?
視錐体からのパラメータ割り出しは簡単に算出できるぞ。
GLUのソース読むのが一番早そうだが。
946 :
944:2005/06/03(金) 01:03:36
>>945 gluPerspective()は、最終的にglFrustum()を呼び出してるから、
パラメータがどうやって変換されてるかっちゅう質問じゃない?
ちなみに、gluPerspective()はそう単純な話しではない。
947 :
944:2005/06/03(金) 01:09:37
>>945 スマソ...orz。gluPerspective()は単純でした。
複雑なのは、glFrustum()のほうでした・・・。
948 :
942:2005/06/03(金) 07:31:29
ソースコピーしたらうまくいきました。
さんくすこ
日本人ってほんと後追いばっかだな。
外人の論文必死こいて翻訳して、必死こいて実装して、
周りのさらに無知な日本人に対して、デカイ顔をしているだけ。
さすがに吐き気がしてきた。もう帰る。
950 :
デフォルトの名無しさん:2005/06/04(土) 11:30:46
「日本人は1.2まで」
>>949 海外の方にしては日本語がお上手ですね。
自分が1から作ったのではなく、
人のコードを猿真似して実績とかいってるアホもおるけん
鮮人がわいてるし、困った物だ。
>>949 お前に食わせるアニキサラダは無い!帰れ!
>>952 お前に食わせるアニキサラダは無い!帰れ!
俺にはアニキサラダを食わせてもらえますか!?
よし!食え!ちゃんとあとでアニキ農場を手伝うんだぞ!
了解だ、アニキ!
ところで、俺のボディのスペキュラ具合を見てくれ。
こいつをどう思う?
マッチョだな、スペキュラにはほど遠い。
ウホッ!いいマッスル・・・
ふたりはスペキュラ
そして空へ
あにき、あにき、あにきとワタシ
マッチョダンディ〜
葉山はすげぇぜ。
キルガードたんとどっちが凄い?
最近の若人は「超兄貴」の音楽を知らないらしい
老兵は去るのみじゃのぉ、もう来ないから安心したまへ
>>964 そんなことは漏れのスキンメッシュをワセリン塗ってテカテカにしてから言いやがれ。
また妙な流れになってきたなw
967 :
デフォルトの名無しさん:2005/06/06(月) 16:22:27
すいません、初心者です。質問させてください。
OpenGL + Cgのサンプルを今給黎さんのT-potからもらってきたんですが、
"cgBindIter"といったような宣言や
"cgGLBindUniformStateMatrix"といったような関数があります。
これってCgランタイム1.0の関数とかで最新のランタイムだと仕様が変わっていたり
するんでしょうか?
全然コンパイルが通らずに困っています。
968 :
デフォルトの名無しさん:2005/06/06(月) 16:48:20
さっきOpenGL始めてみたんですけど
コンパイルが通りません。
fatal error C1083: インクルードファイルを開けません
’GL/gl.h’No such file or directory
というエラーが出ます。
どうすればよいのでしょうか
>>967 環境とかエラーメッセージとかないと俺にはわからん。
>>968 gl.hの有無は調べたの?
変な場所にあったら、そこにインクルードパスを通せばいいよ。
>>967 「全然コンパイルが通らず〜」では情報量ゼロ。コンパイラの出すエラーを提示しろ。
>>968 エラーの通り。VC++なら普通にパスが通ってるはずだが、開発環境が提示されていないので
これ以上は何も言えない。
971 :
969:2005/06/06(月) 17:33:29
かぶった・・・orz
>968
エラーだおr C1083: インクルードファイルを開けませんお
GLフォルダの中のgl.hが見つからないか、そもそもGLフォルダが存在しないお
973 :
967:2005/06/06(月) 18:27:28
>969
>970
すいません。
単純に参照が効いていない状態です。
"error C2065: 'cgProgramByName' : 定義されていない識別子です。"
とか言われます。
環境はWindows2000 VC6.0 パスの設定はしています。
最新のcg.h,cgGL.h,cg.lib,cgGL.libを参照しています。
ついでに言うと
最新のツールキットに入っているサンプルでは"cgGLLoadProgram()"は引数1こなのに
2002年の今給黎さんのサンプルの"cgGLLoadProgram()"は
引数2こ書いてあります。(もちろんここでもエラーがでます。)
やはりこれは仕様の変更があったってことですよね?
昔のサンプルは無視してよいのでしょうか?
cgは情報源が少なすぎて…DirectXでぬるま湯つかってたのがよくわかりました。
サンプルファイルは
100%
VC++用だから、BCCやGCCなどでは
100%
通らない
975 :
967:2005/06/06(月) 18:40:44
失礼しました。
VC++6.0 を使っています。
976 :
967:2005/06/06(月) 18:46:18
失礼しました。
VC++6.0を使っています。
977 :
967:2005/06/06(月) 19:59:43
失礼しました。
VC++6.0 を使っています。
978 :
967:2005/06/06(月) 20:04:36
失礼しました。
VC++6.0 に使われています。
>>973 ヘッダファイルを覗いて、'cgProgramByName' があるかどうかを確認する。
>>973 いまちょっとビルドしてみたけど、ほどんど変わってるね。
ここまで違うと、Cg付属のサンプルから勉強した方が良いよ。
ソースのコメント英語だけど、そんなに難しい事書いてないし。
CgからGLSLへ乗り換える良いチャンスだ
984 :
982:2005/06/07(火) 02:21:36
WWDC待ちでヒマなんでちまちま直してたけど、ちょっとこれは変わり過ぎだね。
だんだん嫌になってきた(w
1.4でまた大幅に変わったら悲しいし、
>>983の言う通りGLSLに乗り換えた方が良いと思うよ。
Cgなんてただのコンパイラなんだから、アセンブラを掃き出して
それをOpenGLの関数で読み込むようにすればいいんじゃないの?
>>967 何たる奇遇!
漏れもきのう同じことやってたぞ。
まったく勘弁して欲しいよなこういう変な仕様変更。
それってベータ版からの変更では?
2003年には今の形になってたと思ったが。
NVIDIAに日本語のドキュメントあるよ。
>>985の方法はGLSLではできないんでしょ?
ので乗り換えを躊躇してます。
何があったのか知らんがARBもいきなり互換性のないシェーディング言語を持ち込むのはやめていただきたい
C言語覚えたてなんですが何かいい入門書ないですか?
992 :
デフォルトの名無しさん:2005/06/07(火) 21:22:09
誰か次スレ立てれ
994 :
992:2005/06/07(火) 22:48:05
次スレ乙
>>994 まぁ忘れられたらもいっかい聞くだな。w
おいらklimtは知らんかったが、ちょっと面白そうだな。
996 :
967:
アドバイスいただいた方ありがとうございました!
仕様変更ありすぎてちょいパニクッてしまいました。
失礼しました。
今はGLSLを使っています。