12/02/04 10:54:06.15
悔しかったん?
578:デフォルトの名無しさん
12/02/04 11:13:16.10
あほでしょあなた。。w
あほでしょあなた。。。。w
あほでしょあなた。。。。。。w
あほでしょあなた。。。。。。。。
579:デフォルトの名無しさん
12/02/04 13:03:09.26
>>577
はぁぁぁぁ?
580:デフォルトの名無しさん
12/02/04 14:48:56.86
はぁぁぁぁ?
はぁぁぁぁ? !
はぁぁぁぁ ? !
はぁぁぁぁ ?!
はぁぁぁぁ ! ?
はぁぁぁぁ!
581:デフォルトの名無しさん
12/02/06 23:05:07.66
いいからOpenGLの話しろ
582:デフォルトの名無しさん
12/02/06 23:23:23.41
ウィンドウサイズを変更した時に
ウィンドウ全体のピクセルを拡大することってできる?
たとえば
■□
□□
↓
■■□□
■■□□
□□□□
□□□□
こんな感じ
583:デフォルトの名無しさん
12/02/06 23:49:45.65
別コンテキストにレンダしてそれをGL_NEARESTなテクスチャとして貼るとか?
それかシェーダ
584:デフォルトの名無しさん
12/02/07 00:35:05.44
ビューポート
585:デフォルトの名無しさん
12/02/07 00:36:33.77
ビューポート
586:デフォルトの名無しさん
12/02/07 00:40:46.52
>>583
(´c_,`o)
587:デフォルトの名無しさん
12/02/07 21:57:46.82
ビューポートで出来んだっけ??
588:デフォルトの名無しさん
12/02/07 22:49:59.50
できんの?!
589:デフォルトの名無しさん
12/02/07 22:57:19.10
ViewPort変換ってフラグメントシェーダが走った後に処理されるのか勉強になるよ
590:デフォルトの名無しさん
12/02/07 23:10:42.87
ビューポートの操作ではピクセルが拡大されたように見せることは無理だ
591:デフォルトの名無しさん
12/02/08 00:31:36.96
>>590
アホたれ
592:デフォルトの名無しさん
12/02/08 00:53:23.79
>>591
ソースは?
593:デフォルトの名無しさん
12/02/08 00:56:28.35
ソース乞食ktkr
594:デフォルトの名無しさん
12/02/08 01:15:12.06
また出来ないことを出来ると言い張る知障が現れたか
勘違いで発言した後引くに引けなくなって言動が破綻してくいつものパターン
595:デフォルトの名無しさん
12/02/08 01:53:36.44
URLリンク(wisdom.sakura.ne.jp)
596:590
12/02/08 07:43:57.39
>>591
では、もう少し詳しく説明してやる
ビューポートは、正規化デバイス座標系(NDC)での座標を
ウィンドウ座標系での座標へどう変換するかを指定するものだ
この変換をビューポート変換という
ビューポート変換は線形変換だ
従って、ウィンドウ座標系のあるピクセルとその隣のピクセルに
それぞれ変換されるNDCの座標は、それぞれ異なるはずである
しかし、仮に >>582 のやりたいことをビューポート変換で行う事を考えれば、
それはあるピクセルとその隣のピクセルにNDCの同じ座標を割り当てる事になる
だが、先ほども言ったようにビューポート変換は線形変換なので矛盾する
従って、>>582 のやりたいことをビューポート変換で実現するのは不可能である
逆にこの事から、どうすべきかは必然的に見えてくる
要するにウィンドウ座標系のある隣同士のピクセルに
それぞれ変換されるNDCの2つの座標が同じ値が示しすようにするしかない
597:590
12/02/08 07:51:17.08
>>596
> 逆にこの事から、どうすべきかは必然的に見えてくる
ここの件は間違いだった
シェーダーを用いればこの件の結論は覆る
しかし、ビューポート変換では実現できないことは確かだ
598:デフォルトの名無しさん
12/02/08 08:58:54.95
馬鹿なん?
599:デフォルトの名無しさん
12/02/08 09:19:41.90
元々の「ウィンドウ全体のピクセルを拡大」てのが意味不明瞭だしなぁ。
普通に考えればビューポート変えてもピクセルを拡大なんてできないわけだけど、
テクスチャを一枚表示してるだけのプログラムなら、ビューポート変えれば
「ピクセルを拡大」したように見えないこともないかもしれないし。
ていうかビューポート、ビューポート言ってる人達(達?)は、一体何を考えてるんだろうか。
一言レスとか悪態とかしか書けないあたり、具体的な策を持ってない人だろうか。
600:デフォルトの名無しさん
12/02/08 09:20:21.59
何のためのプロジェクション行列だよ…
601:デフォルトの名無しさん
12/02/08 09:22:03.60
>>599
基本からやり直せ
602:デフォルトの名無しさん
12/02/08 09:22:08.73
そりゃ解決法はいくらでもあるだろう・・
603:デフォルトの名無しさん
12/02/08 09:47:14.85
>600-602
ああ、なるほど、うん、大体分かった…
>>582
とりあえずですね、残念ながらあなたの説明では、あなたのやりたい事が分からないですよ。
もしウィンドウサイズ変えても描画領域が変わらなくて困ってる、あるいは絵を大きくしたいだけならglViewportだし、
582の図を愚直に解釈して本当にピクセルを拡大したいなら、別のやり方を考えないといけないし。
(582の図は2x2->4x4ですけど、例えば2x4->9x3の場合ならどうなって欲しいの?とか)
604:デフォルトの名無しさん
12/02/08 10:56:25.78
なんだギザギザにしたいってだけか。
描画に関する事を全てテクスチャにオフスクリーンレンダリングして
GL_NEARESTのミップマップにして後はウインドウサイズにビューポート合わせて
ウインドウサイズにテクスチャをストレッチして描画すればいいだけだろJK
605:デフォルトの名無しさん
12/02/08 11:01:53.42
“だけ”にしちゃ長いなw
606:デフォルトの名無しさん
12/02/08 15:58:15.97
いやいやモザイクにしたいという方が間違えだろ
607:590
12/02/08 19:37:45.67
>>582 のやりたい事なんて明確だろ
「ピクセルを拡大する」と言っている
608:デフォルトの名無しさん
12/02/08 20:27:13.42
>>604
>>583
609:デフォルトの名無しさん
12/02/08 20:48:40.96
別コンテキストなんて誤解を生みそうな用語使っちゃってる回答にアンカ振られても
610:デフォルトの名無しさん
12/02/08 20:54:16.66
glReadPixels と glPixelZoom と glDrawPixels で解決
611:名無し
12/02/09 16:26:19.40
プログラミング超初心者です。
openGLで「openGl 手抜き入門」を用いて勉強していてラジコンティーポットという課題をやっています。
まったくわからないので動かし方を教えてもらえたら嬉しいです
お願いします。
612:デフォルトの名無しさん
12/02/09 16:44:17.03
「openGl 手抜き入門」ってなんだ
613:デフォルトの名無しさん
12/02/09 16:46:00.68
ggrks
614:デフォルトの名無しさん
12/02/09 16:50:16.92
>>611
「まったくわからない」じゃどこまでで来て、どこからができないのか答える方がまったくわからないので答えようがない。
もしわからないのが操作の部分ならOpenGLとは切り離して考えるべきじゃないだろうか。
615:名無し
12/02/09 17:00:19.78
URLリンク(www.wakayama-u.ac.jp)
動かすためのプログラミングがわかりません
616:名無し
12/02/09 17:02:33.92
動かすために何を書いたらいいのかがわかりません
617:デフォルトの名無しさん
12/02/09 17:04:04.47
抽象的すぎて何がわからないのかわからないのでアドバイスできません.
具体的に分からない箇所を言ってください
618:名無し
12/02/09 17:06:24.04
どうやったらラジコンティーポットが8の字に動くんですか?
619:デフォルトの名無しさん
12/02/09 17:06:24.64
openGlより前にプログラミングの基礎を勉強しようか
620:名無し
12/02/09 17:10:20.95
基礎勉強してたらこのラジコンティーポットを動かす課題の提出日が過ぎちゃいます
621:デフォルトの名無しさん
12/02/09 17:13:01.00
知るか。
622:名無し
12/02/09 17:17:02.76
知ってください
誰かお願いします。
ラジコンティーポットを操作できるようにしたいんです。
623:名無し
12/02/09 17:29:10.15
URLリンク(www.wakayama-u.ac.jp)
これの課題の答え教えてください。
624:デフォルトの名無しさん
12/02/09 17:31:17.12
宿題は宿題スレへ
625:デフォルトの名無しさん
12/02/09 17:32:23.22
プログラムのビルド&実行ができてるのかすら怪しいレベルだな…
626:デフォルトの名無しさん
12/02/09 17:34:59.83
ちなみに期限はいつだ?
627:名無し
12/02/09 17:37:41.40
明日です
628:デフォルトの名無しさん
12/02/09 17:37:54.99
ラジコンティーポット OpenGL 解答
とかでググッたら出てくるんじゃねの?とか思ったら...
URLリンク(detail.chiebukuro.yahoo.co.jp)
629:デフォルトの名無しさん
12/02/09 17:39:04.07
一連の流れにワロタw
630:デフォルトの名無しさん
12/02/09 17:53:26.91
っていうか床井先生のサイトじゃねーか
つうか、何にでもstatic付けるのな
そんなにインスタンス必要か
631:名無し
12/02/09 18:05:47.23
おねがいします
632:デフォルトの名無しさん
12/02/09 18:06:43.47
>>611
正解は>>624
以下個人的な見解
質問の仕方から見るに、あなたはこの課題に向き合うレベルに全く達してないので
仮にこれをクリアしたとしても、すぐにまた詰みます。
課題と単位は諦めて基礎からやり直すのが宜しいでしょう。
633:デフォルトの名無しさん
12/02/09 18:57:28.34
急がば回れ
C/C++の基礎から学んでOpenGLに入門したらよろしい
634:名無し
12/02/09 19:03:58.29
課題さえ終わればこの先プログラミングをやる機会は少なくなるので…
635:デフォルトの名無しさん
12/02/09 19:07:18.02
スレチ。消えろ
636:デフォルトの名無しさん
12/02/09 19:23:50.51
>>634
問題はそこではなく、これを教えたところであなたの成長を期待する事が全くできないって事です。
不良物件に時間を投資したいと思う人はいないでしょう?
637:デフォルトの名無しさん
12/02/09 19:39:56.23
プログラミングやらない人に教えるのはばからしいわな
638:デフォルトの名無しさん
12/02/09 20:31:34.09
そのために、金がある。
639:デフォルトの名無しさん
12/02/09 20:43:56.03
宿題スレ行ったのかな?と思ってあっち覗いたらそこそこ荒れててわらた
640:デフォルトの名無しさん
12/02/09 21:39:43.36
むしろ、あっちの方で先に聞いててワロタ
641:デフォルトの名無しさん
12/02/09 22:51:25.21
5分でマルチポストとか…
>>638
金払うなら仕事してもいいかも。
実装で5000円、相手するのが面倒そうなので二万円、
合計は切り上げて三万円の請求てとこだナ。
642:デフォルトの名無しさん
12/02/09 22:58:11.48
つうかsin,cos関数が分かれば組めるだろうに
高校生レベルじゃないか
643:デフォルトの名無しさん
12/02/09 23:06:42.29
>>642
多分だけど、分からないのはそこじゃなくて、もっとプログラムの根本的な部分だと思う。
ティーポットを奥に向かって一定速度で動かせ。っていうのすら出来ないんじゃないかなぁ。
644:デフォルトの名無しさん
12/02/09 23:16:44.98
>>611
まだいるか分からないけど、徹夜してでも頑張る気があるなら、SkypeかGoogleChatの
アカウントでも晒してくれれば、教えてあげてもいいよ。
ただし、段階を踏んで教えてあげることはできるけど、答えを教えるつもりは一切無いです。
645:デフォルトの名無しさん
12/02/09 23:28:44.69
あっちのスレで学校の掲示板にスレ晒されてたので来ないでしょう
646:644
12/02/09 23:58:21.40
そんじゃ、寝ますわん。
647:デフォルトの名無しさん
12/02/10 00:06:23.39
いやん、ねないでえん
648:デフォルトの名無しさん
12/02/10 18:23:17.19
c#でOpenTK使ってテクスチャを張ろうとしたんだが、
LinuxでC++でやってた通りにやった積もりなのになかなかテクスチャが張れなくてえらい苦労した。
ふと、400x400の画像を512x128の画像に替えたらあっさり。
なんてこったいw
649:デフォルトの名無しさん
12/02/10 18:52:59.04
ほとんどの3Dで、テクスチャサイズは2のn乗にあわせないと不具合起こすと言うよね。
650:デフォルトの名無しさん
12/02/10 19:09:53.79
古い環境だとな。
651:デフォルトの名無しさん
12/02/10 20:17:36.67
テクスチャは2のn乗で作るのが常識だろ
652:デフォルトの名無しさん
12/02/10 20:29:59.73
今はそんなことない
653:デフォルトの名無しさん
12/02/10 21:42:40.70
そうやって一生自分の環境でしか動かないもの作ってるんだ
654:デフォルトの名無しさん
12/02/10 21:48:18.69
ターゲットにする環境はそれぞれで違うわけだし、
新しい機能だって必要に応じて使えばいいだろ。
今時はiPhoneとかでも好きなサイズのテクスチャ使えるよ。
パフォーマンス的に有利かどうかは知らんけど、
そこは目的に合わせてだよね。
655:デフォルトの名無しさん
12/02/10 22:43:49.84
てかエラーチェックちゃんとしようネ
656:デフォルトの名無しさん
12/02/11 01:06:23.53
言い訳がましい
657:デフォルトの名無しさん
12/02/11 02:01:58.21
まぁ、レンダリングの中に一つくらいは、お守りのつもりでglGetError()入れといた方が、結果的には助かるよね。
658:デフォルトの名無しさん
12/02/11 03:40:10.89
つARB_debug_output
659:デフォルトの名無しさん
12/02/13 13:10:05.24
gl_texture_rectangleはATI系で異常に遅かったり等あったから、
至近の2のn乗サイズのテクスチャ作って転送してUVで切り出すようにしてるわ
660:デフォルトの名無しさん
12/02/13 16:00:39.70
メタセコイアで作ったモデルをC++から読んで描画する所までは出来たんだが
ここから、モデルをアニメーションさせたりするにはどうすりゃいいんだ…。
(; ゚д゚)ぼ、ボーン?ってレベルなんだが、
なんか参考になりそうな書籍などありましたらご教示お願いいたします。
661:デフォルトの名無しさん
12/02/13 19:49:15.49
マルペケ
662:デフォルトの名無しさん
12/02/14 00:18:15.65
>>660
行列またはクォータニオンなんかの頂点位置移動(回転)情報を時系列に並べた
モーションデータをまず用意して… それを読んで毎フレームごとに
再帰的にボーン情報に適用させ、各ボーンに所属する頂点位置を更新する感じ
だが、CPUでそれらを毎フレームごとに計算 (~ glMapBuffer で VertexBuffer 取り出して計算更新した後、glUnmapBuffer)
とかしてると、速度的に話にならないので、必要な情報渡してシェーダでスキンアニメーション処理書く感じ
具体的には浮動小数点フォーマットのテクスチャをデータバッファに使って渡したり、そこまで行列値の物量多く無いなら
普通に uniform で渡したりしつつ、 attribute で各頂点ごとに所属する(ボーン)行列インデクスとか渡して、
シェーダ側で計算して描画。 みたいな。
…そんな具体的な方法よりも、もっと手前の基本的な処理や話なら、マルペケその他の初心者向け記事をどうぞ
663:デフォルトの名無しさん
12/02/14 11:18:05.39
free glutとopen glutはどちらがオススメですか?
664:デフォルトの名無しさん
12/02/14 12:46:52.40
>>661->>662
ありがとう。だいたいどういったものなのかイメージする事が出来た。
手順は…
1.モデルデータにボーンを何らかのツール上でモデルに仕込む
(ボーンは移動計算の元となる頂点・線分で、モデルの各頂点に対して関連付けられる)
2.ツール上でモーションデータを作成し、プログラム側で読む
(モーションデータはボーンがどう移動(回転)したかという情報を時系列順に並べたもので、扱いやすいように行列/クォータニオンの形で持つ)
3.ボーンに関連付けられたモデルの頂点に対して、ボーンが移動した分だけ頂点を移動
(ボーンは親子関係が存在するから、親が動いたら子に関連付けられた頂点も操作→再帰でやる)
4.頂点バッファに突っ込んでレンダリング
(ただしバッファの転送を毎フレーム行うのは速度的に遅いので、GPU側に処理をお願いする方法がある)
シェーダは…すまん、まだ触った事なくてちょっと解らない。
せっかく説明してくれたのに申し訳ない。
基本的な知識もだいぶ足り無そうだから、お勧めされたサイトのマルペケで
DirectX周りの説明で基礎知識を掻い摘みつつ、実装してみるよ!
とても解りやすいアドバイス、ありがとうございました。
665:662
12/02/14 13:05:11.27
>>664
多分わかってるとは思うけど、念のためフォローしておくと、
>1.モデルデータにボーンを何らかのツール上でモデルに仕込む
>(ボーンは移動計算の元となる頂点・線分で、モデルの各頂点に対して関連付けられる)
実際には「ボーン」って言うのは、OpenGLの世界の話じゃなくて 「私がこうしたいから用意した、自前の情報」 なので
『ボーンデータを仕込む』 と言うより、『そのつもりの情報を、用意する』 って感じ
で、俗にボーンと呼ばれる物の正体は、移動計算の元にする物ではあるけど、それは頂点や線分じゃなくて、
主には位置と回転行列(細かい事言うと、それは1要素当たりfloatが16個並ぶ行列であったり、4個並ぶクォータニオンだったり)するだけ。
自分の計算方法次第だけど、あと、そのボーン座標空間上での原点から、次の節までの距離なんかも持たす事もあるかもしれないが
で、メッシュの各頂点への関連付けってのは、自分で 「これはこれ、あれはそれ」 のように関連付け "た" 形で用意する。
考え方のもっと細かい所は、キリが無いから上で出てるサイトでもなんでも見たほうがいいが、
大枠として簡単に言うなら、「ボーンの移動量に合わせて頂点を移動させる」 と言うより、「ボーンローカル座標空間を、回転させる」 感じ
それが再帰的に連なると。 以上スレチ気味御免
666:デフォルトの名無しさん
12/02/14 14:12:50.36
glDeleteTexturesの第二引数ってアドレスで渡すような形になってるけど、
値が同じなら、glGenTexturesで渡したアドレスと同じでなくてもいいんだね
int tex1 = 0;
glGenTextures(1, &tex1);
(中略)
int tex2 = tex1;
glDeleteTextures(1, &tex2);
これで普通に解放されてて驚いた
今までクラス間でポインタのバケツリレーやってたわ・・・
667:デフォルトの名無しさん
12/02/14 14:23:08.63
独り言はよそでお願いします。
668:デフォルトの名無しさん
12/02/14 14:40:32.30
解らないなら素直にそう言えよ
669:デフォルトの名無しさん
12/02/14 14:44:25.65
目くじら立てるほどのことか?
670:デフォルトの名無しさん
12/02/14 14:48:09.23
にわかの茶々は今に始まったことじゃない。
671:デフォルトの名無しさん
12/02/14 14:52:08.86
なんか知らんが氏ね
672:デフォルトの名無しさん
12/02/14 15:07:25.97
>>663をそろそろ・・・
673:デフォルトの名無しさん
12/02/14 15:14:23.20
独り言はよそでお願いします。
674:デフォルトの名無しさん
12/02/14 15:15:35.50
freeglutしか使ったことない
675:デフォルトの名無しさん
12/02/14 15:17:14.16
>>666
glGenTextures が、アドレス受け取って書き戻しをしてるから、
対応する関数の glDeleteTextures でも、同じシグネチャにしてみた… って所じゃね。多分だけど
676:デフォルトの名無しさん
12/02/14 15:36:37.62
ポインタ渡しして値比較してるだけか
677:デフォルトの名無しさん
12/02/14 15:38:38.73
openglutも長いこと止まってないか?
678:660
12/02/14 16:05:52.47
>>665
(; ゚д゚)お、おk。
ボーン周りというのは飽くまで、ツール上でそういう扱いや見え方してるけど
実体は、アニメーションしたいから付けた付加情報とかタグとかみたいなもので
ボーンと各頂点の関連付けについても同様で、そういうデータを自分で用意するんですよという事か。
それで、ツール上で書き込んだ論理的なボーンとかその関連付けを
自分のプログラムで読み込んだとき、
計算しやすいような持ち方にして持ちましょうということか。
OpenGLというより、スキンメッシュの概論みたいな相談になってしまって申し訳ありません。
アドバイス、ありがとうございました。
679:デフォルトの名無しさん
12/02/14 16:21:58.90
複数のテクスチャをまとめて一度に削除できるように配列のサイズと先頭アドレスを渡す形になってるだけじゃないの
680:デフォルトの名無しさん
12/02/14 16:44:45.96
Cの配列の仕様と書き出し用ポインタがぐちゃぐちゃでややこしくて発生した悪い例
681:デフォルトの名無しさん
12/02/14 22:50:34.50
え、ややこしいのか?
682:デフォルトの名無しさん
12/02/14 22:52:31.68
Cの配列はこれ以上ないくらいシンプル。
683:デフォルトの名無しさん
12/02/15 00:56:25.77
だからポインタと配列の比較でって言ってるじゃないか
配列単体のことは言ってないよ
684:デフォルトの名無しさん
12/02/15 01:01:47.87
Cの配列はそんな高級言語的な目でみるもんじゃないでしょ。
685:590
12/02/15 07:13:25.93
ポインタも配列も構造体も全てメモリ操作の構文糖衣
686:デフォルトの名無しさん
12/02/15 18:56:11.21
なんだ雑魚か
全て要件が違うだろ
687:デフォルトの名無しさん
12/02/15 22:14:39.27
配列=複数の同じ型の変数がメモリに順番に並んでいる物
ポインタ=変数のアドレスを格納している変数
構造体=いろいろな型の変数、ポインタ、あるいは構造体を複数、含める事のできる機構
最近では関数も含める事ができるしコンストラクタ等もあって、ほとんどクラスみたくなってる
688:590
12/02/15 22:35:41.38
1バイトのデータを格納できる領域がたくさんシーケンシャルに並んだメモリというものがある
そこに、1バイト~64バイトのひとつの枠をあてがうのが間接演算子(*)によるアクセス
1バイト~64バイトの1種類の小枠が複数並んだ枠をあてがうのが配列によるアクセス
1バイト~64バイトの複数種類の小枠を任意に並べた枠をあてがうのが構造体によるアクセス
689:デフォルトの名無しさん
12/02/15 22:44:23.34
590は本物の阿呆だった
算術・論理演算は!&の構文糖衣理論並みの発言
690:デフォルトの名無しさん
12/02/16 16:05:46.18
freeglutは64ビットのアプリにもつかえますか?
691:デフォルトの名無しさん
12/02/16 18:38:45.80
64bit用のがどこかにあったと思う
692:デフォルトの名無しさん
12/02/16 18:49:52.87
どこですか?
693:デフォルトの名無しさん
12/02/16 19:40:00.90
どこも何も本家から辿れるとこにあるしお 寿司 URLリンク(files.transmissionzero.co.uk)
694:デフォルトの名無しさん
12/02/16 23:28:44.30
質問。
GLSLシェーダコードに置いた、attribute 変数に対して、CPU側、glVertexAttribPointer で頂点ごとに変化する内容を渡そうと
任意配列を対応付け、glDrawArrays …ではなく、glDrawElements で描画させようとしています。
ここで疑問。 果たして、「VertexShaderにやってくる配列要素の順序は、何順になるのか」 です。
単純に頂点配列を一直線に並べて glDrawArrays する分には、結果的に頂点の順序でやってくるだろうと思うのですが、
glDrawElements …つまり、頂点インデクスの配列で渡した場合、シェーダに来る順序は、
1.それでも実際の頂点配列の順
2.インデクス配列の順
どちらになるでしょうか…。
695:デフォルトの名無しさん
12/02/16 23:36:38.94
? 頂点シェーダに来る頂点の順序とか考える意味が何処にある?
696:694
12/02/16 23:39:58.29
文章だけだと伝わりづらいかもしれないので、例と補足。
A B
□ A,B,C,D の4頂点がある四角形を描画しようとして、
C D
単純に頂点配列で A,D,C,A,B,C と6つ並べた配列に対して、
例えば attribute を、値[0],値[1],値[2],値[3],値[4],値[5] のような配列で渡せば、
B の頂点が VertexShader に来る時、そこでは 値[4] の値が参照出来る、のはわかるのですが、
これを、
. 0, 1, 2, 3
頂点データ: A,B,C,D / 頂点インデクス: 0,3,2,0,1,3 と並べて、
attribute に、値[0],値[1],値[2],値[3],( 値[4],値[5] ) のような配列で渡した時、
VertexShader で参照出来る attribute の順番は、「頂点順」 か、または 「インデクス順」 なのか、と言う話です。
697:デフォルトの名無しさん
12/02/16 23:40:20.91
むしろ全部の頂点を同時にやってクレ
698:694
12/02/16 23:41:39.09
>>695
え? 頂点ごとに異なる内容を渡すのに attribute を使うので、
むしろ 「どの順序で来るのか」 がはっきりしないと、意味が無いかと
699:694
12/02/16 23:44:54.66
あれもしかして俺、attribute の用途、間違えてる…??
700:デフォルトの名無しさん
12/02/16 23:50:04.98
glVertexAttribPointer は頂点と一対一対応してるんだよ。
701:デフォルトの名無しさん
12/02/16 23:53:39.28
順序ってのがわかりづらいな
>>696の場合、
インデックス:0,3,2,0,1,3
頂点:A,D,C,A,B,D
属性:値[0],値[3],値[2],値[0],値[1],値[2]
こうなる。
ちなみに頂点座標も属性の一つだぞ
702:694
12/02/16 23:57:12.66
>>700
ありがとうございます! つまり、
頂点データ: A,B,C,D ([0]~[3]) / 頂点インデクス: 0,3,2,0,1,3 ([0]~[5])
とある場合、それは glDrawArrays だろうが glDrawElements だろうが、
やってくる順序は、[0]~[3] になると言う事ですね!
つまりこの例で言えば、attribute に対応付ける配列要素は、値[0],値[1],値[2],値[3] のみで、
そして VertexShader にやってくる順序は、 値[0], 値[3], 値[2], 値[0], 値[1], 値[3] になると。
確かに言われて見れば、CustomVertex の仕様を考えてみても、それが自然に思えてきました。
ありがとうございました。
703:694
12/02/17 00:00:29.53
ああリロードしてなかった。
>>701 ありがとうございます! 納得出来ました。
>ちなみに頂点座標も属性の一つだぞ
確かに、おっしゃる通りだと思います。要は 「頂点も、色も、その他も」 配列にして全て
シェーダにブチ込んでしまって、それらについて描画する、と言う状態を想像すると、
とても晴れやかです。 ありがとうございました
704:デフォルトの名無しさん
12/02/17 00:16:46.40
>>694君はOpenGLの仕様書の
2.6 Primitives and Vertices
から
2.8 Vertex Arrays
まで読み直したほうがいいと思う。
GPUには複数のVertex Shaderがあって
複数の頂点が同時にVSで処理される。
OpenGLは基本的に1頂点に頂点属性が一つに纏められる。
Objファイルだと一つの三角形に位置、法線、UVに対して別々のインデックスを指定できるけど
(glBeginのような古い機能を使わない限り)OpenGLだとそれができないのだ。
705:デフォルトの名無しさん
12/02/17 00:31:40.57
珍しくOpenGLスレらしい話が展開されている
706:デフォルトの名無しさん
12/02/17 01:05:35.44
俺にはわからん
707:デフォルトの名無しさん
12/02/17 02:44:50.46
>>706君はOpenGLの仕様書の
全 ペ ー ジ
を読んだほうがいいと思う
708:デフォルトの名無しさん
12/02/17 17:18:10.93
いい仕様書をくれ
説明書みたいなブラックボックスはいらん
709:デフォルトの名無しさん
12/02/20 16:06:09.25
>>693
それって64ビットアプリじゃなくて32ビットアプリで
64ビットOSでも実行できるってだけじゃないんですか?
710:デフォルトの名無しさん
12/02/20 16:43:29.26
>>709
何言ってんだ?
と思ってダウンロードしてみたけど、32ビットも64ビットも両方入ってたよ
711:デフォルトの名無しさん
12/02/20 17:04:23.34
>>710
mingwのほうです。
712:デフォルトの名無しさん
12/02/20 17:16:36.34
なんか小出しにされると疲れるな。
みつからないなら自分でソースからビルドしたら?
713:デフォルトの名無しさん
12/02/20 17:19:51.89
mingwの人はどうしてるんですか?
みんな自分でビルドしているならそうします。
714:デフォルトの名無しさん
12/02/20 19:32:51.22
みんなそうしてなくても、こうしてる間に自分でビルドすればいいじゃん
後で見つかったら、それから差し替えるかどうか検討すればいい
715:デフォルトの名無しさん
12/02/21 00:16:35.67
mingwなんて使ってる人いたことに驚いた
716:デフォルトの名無しさん
12/02/21 00:44:21.12
いや使う事もある
717:デフォルトの名無しさん
12/02/21 01:21:29.86
vcとgccの中間のどっちつかずの子ってイメージあるなあ
718:デフォルトの名無しさん
12/02/21 02:02:37.87
>>717
おい。 MinGW に含まれるコンパイラって、名前通り GCC じゃないのか
719:デフォルトの名無しさん
12/02/21 13:31:34.36
gccだよな
720:デフォルトの名無しさん
12/02/21 22:06:53.12
んだね.クロス環境で作ってるからどうしてもwindowsだとMinGW使わざるを得ない
721:デフォルトの名無しさん
12/02/22 00:22:58.79
使わざるを得ないというほどのものじゃない気がするが
実際MinGWなんて久しく触ってない
722:デフォルトの名無しさん
12/02/22 01:23:03.60
Cygwin 上でコンパイル
723:デフォルトの名無しさん
12/02/22 03:55:41.79
覇王翔吼拳を使わざるを得ない
724:デフォルトの名無しさん
12/02/22 10:07:01.41
それなりの需要も理解できないのか
725:デフォルトの名無しさん
12/02/22 12:17:23.54
Vスタ使うならDX使うだろ普通。
726:デフォルトの名無しさん
12/02/22 17:44:39.14
なんか子供が新しいものを手に入れて、ドヤ顔で見せてる様を思い浮かべた
727:デフォルトの名無しさん
12/02/22 20:13:13.64
いつもの単文の人だろうけど
煽るなら煽るなりにもっとクオリティを追求して欲しい
728:デフォルトの名無しさん
12/02/23 09:30:24.21
mingwの64のfreeglutコンパイルしました。
普通は最適化が-O2だけど-O3にしてコンパイルしました。。
語尾に32の付いたライブラリーをリンクしたのが気になるけれど
よく分からないんで放置しておきました。
729:デフォルトの名無しさん
12/02/25 08:29:44.97
静的リンクのライブラリーのとき-lopengl32というオプション等をつけたら
コンパイル通るんですけど。
libopengl32.aなんて名前のファイルをパソコンの中を検索してもひとつも
見つかりませんでした。opengl32で検索してもそれらしきファイルは見つかりませんでした。
-lopengl32は一体どういう意味なのか教えてください。
730:デフォルトの名無しさん
12/02/25 09:02:39.66
探し方が悪い
731:デフォルトの名無しさん
12/02/25 09:28:49.85
いやほんとに無いです。
opengl32.dllならありますが
これは関係ないでしょう。
732:デフォルトの名無しさん
12/02/25 10:46:31.80
あるじゃん
733:デフォルトの名無しさん
12/02/25 11:11:24.73
dllにもlib .aファイルと同じ効果があるというとは知りませんでした。
ありがとうございました。
734:デフォルトの名無しさん
12/02/25 16:41:25.38
>>733
>>730>>32は適当さんだから信じちゃだめ
735:デフォルトの名無しさん
12/02/25 17:24:55.16
>>733
dynamicライブラリとstaticライブラリの違いくらい勉強してからレスしましょう
736:デフォルトの名無しさん
12/02/25 17:26:09.45
>>733は分かった上での皮肉だと思うんだが
動的リンクならdllからlib作れるけど静的リンクなら無理だね
本当にリンクできているんなら探し方が悪いんだろう
737:デフォルトの名無しさん
12/02/26 10:58:05.58
mingwならC:\MinGW\libにlibopengl32.aが普通に入ってるぞ
738:デフォルトの名無しさん
12/02/26 14:22:36.00
glutSolidCube(☆1)→glTranslate/glRotate/glScale→glutSolidCube(☆2)
(☆1)と(☆2)の各頂点をGL_LINESでむずびたいのですが
glTranslate/glRotate/glScaleする前後のglutSolidCubeの各頂点の座標を得るにはどうすればよいでしょうか
前後のどちらか片方はわかるんですが両方得るためには自前で行列演算しないとだめですか?
739:デフォルトの名無しさん
12/02/26 14:33:59.56
>>738
> 前後のどちらか片方はわかる
なぜ?
740:デフォルトの名無しさん
12/02/26 14:52:59.26
>>739は本当に3Dプログラミングしたことあるんでしょうか・・・
例えば☆2でglutSolidCube(1.0f);とすれば
(-0.5, -0.5, -0.5)~(0.5, 0.5, 0.5)を対角とした立方体として描画されますよね?
ここで☆1から☆2の各頂点への線分を引きたい場合は☆1の頂点座標をどうにかして得てGL_LINESすればよいです。
逆に☆1描画時にGL_LINESする場合も☆1の座標は固定でわかりますので☆2の各頂点座標をどうにかして得れば
頂点間の線分を描画することはできます。
「このどうにかして」という部分はOpenGL抜きで考えれば自前でアフィン変換をすれば得ることは可能ですが
OpenGLレイヤで簡単に取得することが可能であればそれを知りたいんです。
741:デフォルトの名無しさん
12/02/26 15:06:59.79
>>740
そういう意味でしたか
> 前後のどちらか片方はわかるんですが両方得るためには
「得る」というのが、OpenGL の何らかの関数を使って得ることができている
という意味だと解釈してました
だから、どうやって得ることができているのか、
なぜそれが両方ではできないのか不思議だったんですが、
「glutSolidCube の仕様上、値が分かる」という意味だったんですね
もの凄く不快な思いをさせてしまったような気がします
ごめんなさい
もう消えます
742: 忍法帖【Lv=40,xxxPT】
12/02/26 15:07:55.46
>>740
OpenGLの仕様書 ver2.1のChapter6を読み直せばOK
743:デフォルトの名無しさん
12/02/26 15:09:21.10
gluProject と gluUnProject と glGetDoublev を使ってごにょごにょすればできないこともない
744:デフォルトの名無しさん
12/02/26 15:20:10.23
>>741
すみません煽りかと思って過剰反応してしまいました…
消えないでください…
745:デフォルトの名無しさん
12/02/26 15:38:14.38
>>742
Chapter6というとStateのところだと思うんですけどやはりGetFloatv等でモデルビュー行列を
取得して自分で何とかするしかないということであってますか?
>>743
プロジェクション行列までは考えなくても済むような気はします
746:デフォルトの名無しさん
12/02/26 16:37:13.48
>>745
OpenGLの古典機能だけしか使わないのなら
モデルビュー行列を取得してラインの終点(☆2の頂点)を
自分で計算するのが一番楽だと思う。
glmのようなベクトル・行列ライブラリを使えばそんなに苦労はしないと思うし。
Vertex Shader使ってもいいのなら、他の方法もいろいろ考えられるけど。
ちゃんと自分の納豆できる手法を教えて欲しいのなら
どういう状況でプログラムを作っているのか具体的に書くべきだと思う。
(俗に言う5W2H)
・どうやってプログラムを作るか?
少ない手間で実装したいor実行速度優先
・どのversionのOpenGLが使えるのか?
古いグラボでも動かしたいかなど
・なんの為に開発しているのか
学校の宿題
女子校生にOpenGLを教えるための教材開発
国プロ
メガデモを作って海外のデモパーティで発表する
747:デフォルトの名無しさん
12/02/26 17:07:30.27
女子高生にOpenGL教えてもらいたいです
748:デフォルトの名無しさん
12/02/26 17:46:19.87
基本的にOpenGLの行列演算系命令は使わない方がいいと思う
簡単なサンプルプログラムを作れる程度の機能しかないので
真面目に書き始めたらglLoadMatrix以外は忘れて
別途ベクトル・行列演算ライブラリを使うべき
○○はできるんですか?どうやるんですか?とか悩んでる時間がもったいない
749:デフォルトの名無しさん
12/02/27 18:06:05.55
>>748
ふと思ったがOpenGLの行列演算系命令って速度的にはどうなん?
750:デフォルトの名無しさん
12/02/27 22:48:47.26
当然ドライバ依存だから単にどうかと言われてもわからないけど
常識的に考えればSSEくらいは使ってくれてるんじゃないかな
CPUで計算するわけだし特別速かったりはしないだろう
751:デフォルトの名無しさん
12/02/28 00:50:19.28
glmで良くない?
標準のは有り得ないでしょ
752:デフォルトの名無しさん
12/02/28 09:23:44.64
単純な移動拡大回転だけならGLの命令使った方が良かったりしないかな。
glLoadMatrixって逆行列の計算で遅くならんかね。
計測してないけど。
753:デフォルトの名無しさん
12/02/28 12:28:38.07
なにが言いたいの?
754:660
12/02/28 13:02:36.45
>>661, >>662
亀ですが…
( ´∀`)おかげさまで↓の動画のように実装できました。
本当にありがとうございました。
URLリンク(ichigo-up.com)
755:デフォルトの名無しさん
12/02/28 16:09:18.13
>>734
ありがとうございます。
openglではなく、libopenglで検索したら見つかりました。
先頭文字からの検索だったみたいです。
756:デフォルトの名無しさん
12/02/28 16:53:03.93
734にありがとうと言う精神が凄い。
757:546
12/02/28 22:23:48.08
とりあえずBCPadでcl.exeを使うことで解決しました。
みなさんありがとうございました。
758:デフォルトの名無しさん
12/02/29 00:13:46.90
>>752
glLoadMatrixを使うと逆行列が計算されて重いってことになるんだったら
行列演算系の命令だって変わらないかそれ以上に重くなるはずじゃないか?
実際のところどっちにしろ本当に必要になるまで逆行列は計算されない
シェーダでgl_NormalMatrixとか使ってれば描画時に一度計算されるだけだろうし
その場合はglLoadMatrixを使ったかglRotateしか使ってないかは関係なく逆行列を計算するだろうね
759:デフォルトの名無しさん
12/02/29 00:34:33.39
>>758
でもScale,Rotate,Translateは逆行列が簡単に生成できるでしょ?計算するまでもないっていうか。
いやGLの内部で実際どんな処理がされてるかは知らんけどさ。
まぁLoadMatrixにしても、4行目が0,0,0,1なら逆行列の計算も軽いだろうけど。
760:デフォルトの名無しさん
12/02/29 06:09:54.47
モデルビュー行列を直接設定できるのはglLoadMatrixだけだよな?
761:デフォルトの名無しさん
12/02/29 22:00:23.90
glLoadIdentity → glMultMatrix っていう方法もないこともない
762:デフォルトの名無しさん
12/02/29 22:36:54.53
直接
763:デフォルトの名無しさん
12/03/03 20:59:43.51
スレチかもしれないけど助けて下さい
古いゲームやろうとしたら起動出来なくて
スレみたら古いOpenGLのサポートが打ち切られてるからじゃないか
みたいな話しが出てたんですが
古いOpenGLがサポートされていないグラボでもゲーム起動出来るようになるような
そんな魔法のおまじないはありますか?
それとも古いグラボ買ったりするしかないんでしょうか
764:デフォルトの名無しさん
12/03/03 21:14:24.04
ソフトやスレの実名出せばいいのに、わざわざ回答が得られないように質問をする
馬鹿ですね
765:デフォルトの名無しさん
12/03/03 21:22:41.80
スレチだと分かってるのなら、スレチでないスレを探せばいいと思うが
766:デフォルトの名無しさん
12/03/03 22:32:28.53
調べた中ではここ以上に適していそうな所がなかったので・・・
手間を省くために知りたい部分だけ具体的にして出して
解決案を求めたつもりだったのですが逆効果だったようですね
あまりスレ上の常識やお約束的なものを知らないもので
スレ汚しすいませんでした
767:デフォルトの名無しさん
12/03/03 22:55:40.45
> あまりスレ上の常識やお約束的なものを知らないもので
そういう事じゃなくて
少なくともゲームで遊ぶ事を語る板でスレを探すべきだろ
ここはプログラム板なんだがな
768:デフォルトの名無しさん
12/03/03 22:57:14.15
OpenTKのGLControlでvsync onにすると30fpsくらいしか出ないんだけど
フォームの中だとこういうもんなのか?
GameWindowってのもあるみたいだけど
60fps出したいならこっち使えってことかね
769:デフォルトの名無しさん
12/03/04 05:11:11.10
それにしても酷い民度だな
さすがOpenGL
770:デフォルトの名無しさん
12/03/04 13:23:45.61
>>768
vsyncの意味理解してないだろ
771:デフォルトの名無しさん
12/03/04 13:28:40.14
>>766見て、このコピペ思い出したわw
女『車のエンジンがかからないの…』
男『あらら?バッテリーかな?ライトは点く?』
女『昨日まではちゃんと動いてたのに。なんでいきなり動かなくなっちゃうんだろう。』
男『トラブルって怖いよね。で、バッテリーかどうか知りたいんだけどライトは点く?』
女『今日は○○まで行かなきゃならないから車使えないと困るのに』
男『それは困ったね。どう?ライトは点く?』
女『前に乗ってた車はこんな事無かったのに。こんなのに買い替えなきゃよかった。』
男『…ライトは点く?点かない?』
女『○時に約束だからまだ時間あるけどこのままじゃ困る。』
男『そうだね。で、ライトはどうかな?点くかな?』
女『え?ごめんよく聞こえなかった』
男『あ、えーと、、ライトは点くかな?』
女『何で?』
男『あ、えーと、エンジン掛からないんだよね?バッテリーがあがってるかも知れないから』
女『何の?』
男『え?』
女『ん?』
男『車のバッテリーがあがってるかどうか知りたいから、ライト点けてみてくれないかな?』
女『別にいいけど。でもバッテリーあがってたらライト点かないよね?』
男『いや、だから。それを知りたいからライト点けてみて欲しいんだけど。』
女『もしかしてちょっと怒ってる?』
男『大丈夫だから。怒ってないから。大丈夫、大丈夫だから』
女『何が大丈夫なの?』
男『バッテリーの話だったよね?』
女『車でしょ?』
男『ああそう車の話だった』
女『ちゃんと聞いてる?』
男『要するに車のエンジンが掛からないんでしょ?』
女『なんでそんな偉そうなの?』
772:デフォルトの名無しさん
12/03/04 15:14:06.50
>>771
いやぁ、何度見てもイラっとするコピペだw
論理的な思考ができる女とじゃないと結婚はできん
773:デフォルトの名無しさん
12/03/04 15:16:46.22
何で?
774:デフォルトの名無しさん
12/03/04 15:18:16.62
少しずつ長くなってるようなw
775:デフォルトの名無しさん
12/03/04 15:20:20.52
>>770
PC再起動したら60fps出るようになったわ
776:デフォルトの名無しさん
12/03/04 15:21:49.22
>>773
自分の要求を遠回しに言って察してもらおうとする
典型的な女思考の女はめんどくさくて嫌いだから
777:デフォルトの名無しさん
12/03/04 15:25:52.34
>>773
論理的思考ができないやつは、男、女に関係なく話にならんだろうw
778:デフォルトの名無しさん
12/03/04 15:29:29.41
もしかしてちょっと怒ってる?
779:デフォルトの名無しさん
12/03/04 15:33:32.21
>>778
うんwww
780:デフォルトの名無しさん
12/03/04 15:34:01.33
なんでそんな偉そうなの?
781:デフォルトの名無しさん
12/03/04 15:36:15.07
>>780
どこが?w
むしろ逆にききたいねw
782:デフォルトの名無しさん
12/03/04 15:39:33.93
喧嘩が成立するのは仲のいい証拠
783:デフォルトの名無しさん
12/03/04 15:42:23.39
何の?
784:デフォルトの名無しさん
12/03/04 16:15:31.14
え?
785:デフォルトの名無しさん
12/03/04 16:17:01.37
さて、ここはどこの板で、何のスレだ?
786:デフォルトの名無しさん
12/03/04 16:25:59.01
ごはんなら昨日食べたでしょう?
787:デフォルトの名無しさん
12/03/04 19:13:09.93
OpenGLって、C++以外で、C#やJava、Objective-Cでも動かすのは珍しくないんでしょうか?
C#はXNAがありますし、JavaやObjective-CもAndroidやMacがありますよね?
788:デフォルトの名無しさん
12/03/04 19:42:15.03
何言ってんだお前
789:デフォルトの名無しさん
12/03/04 21:56:42.04
>>787
言語とミドルウェアとハードウェアぐらいの区別は
出来るようになった方がいいんじゃないかと思った。
790:デフォルトの名無しさん
12/03/05 11:05:45.25
レイヤーが違いすぎる
791:デフォルトの名無しさん
12/03/05 19:36:10.62
どう見ても>>771と同じ状況とは思えないんだが
質問したらなんか煽られて答えて貰えそうにないし
大人な対応してさようならって感じ
まぁ、正しい判断だったと思うわ
792:デフォルトの名無しさん
12/03/05 19:37:59.67
とっくに終わってる話題を掘り返すなよ
793:デフォルトの名無しさん
12/03/09 22:02:59.66
opengl使ったゲームのソースくだしあーん
794:デフォルトの名無しさん
12/03/09 23:46:51.73
あいよー
URLリンク(github.com)
795:デフォルトの名無しさん
12/03/09 23:48:24.92
URLリンク(akita-nct.jp)
796:デフォルトの名無しさん
12/03/10 00:56:58.03
わーいありがとー
797:デフォルトの名無しさん
12/03/11 18:49:17.61
いいってことよ
798:デフォルトの名無しさん
12/03/12 20:15:54.47
64bitのマシンで動かすと、
「DLL 'opengl32.dll' の 'glGenBuffers' というエントリ ポイントが見つかりません。」
というエラーが出るんですが、どうすればいいのでしょうか。
32bitだと正常に動きます。
GLSharpを使ってC#で開発しています。
799:デフォルトの名無しさん
12/03/12 20:20:49.03
GLSharpは知らないけど、64bit版のOSでも32bitのDLLを使うなら、
プラットフォームをAny CPUとかじゃなくてx86にする。
たぶん。
800:デフォルトの名無しさん
12/03/12 20:21:08.97
64ビットのexeで32ビット版のDLLを読み込もうとしてたりしない?
64ビット版のDLLを使うか、exeのビルドターゲットを32ビット (x86) にしないといけない
801:デフォルトの名無しさん
12/03/12 20:40:54.07
>>799,800
レスありがとうございます。
ビルドターゲットをx64にしていました。
x86にしようと思います。
802:デフォルトの名無しさん
12/03/12 23:54:44.88
glGenBuffersがopengl32.dllにね...
GLSharpがx86なんじゃないの
803:デフォルトの名無しさん
12/03/13 11:27:51.96
VisualStudio2010からはこの手のトラブルを避けるために
デフォルトがx86になってるんだがな
804:デフォルトの名無しさん
12/03/16 22:27:54.77
Openゲロ
805:デフォルトの名無しさん
12/03/16 23:27:26.12
黙れ
806:デフォルトの名無しさん
12/03/17 00:57:58.69
了解です。
807:デフォルトの名無しさん
12/03/17 01:42:04.34
次から発言に気をつけてくれればいいよ
808:デフォルトの名無しさん
12/03/17 05:19:34.55
あ?
809:デフォルトの名無しさん
12/03/17 17:00:20.50
れ?
810:デフォルトの名無しさん
12/03/17 17:07:41.59
こ?
811:デフォルトの名無しさん
12/03/17 17:45:38.74
黙れ
812:デフォルトの名無しさん
12/03/17 17:59:06.47
承知しました。
813:デフォルトの名無しさん
12/03/17 17:59:58.58
だ?
814:デフォルトの名無しさん
12/03/18 03:02:18.37
普通に動いてると思ったプログラムが別PCに持ってくと
メモリリークしまくってて笑え・・・ない・・・
デバイス関連の注意点のまとめとか無いもんかね
815:デフォルトの名無しさん
12/03/18 09:59:46.00
>>814
お、ちょっとどういうケースなのか詳しく
816:デフォルトの名無しさん
12/03/18 10:20:13.93
どうせ開発ンヴィディアPC、動作不良レイディォンPCってとこだろ
817:デフォルトの名無しさん
12/03/18 10:29:41.32
メモリを沢山つんでて多少リークしても普通に動いてるPCから、
ちょっとでもリークすると笑えない別PCに持ってっただけとか
818:814
12/03/18 11:15:46.23
>>815
メインのRadeonや知り合いのGeforceでは問題無かったけど
Corei5積んだサブPCのIntelHDだとリークしちゃうみたいで
エラーチェックには引っかかってないようだったけど
とりあえずシェーダ使わないようにしたらリーク解消されたってとこ
具体的なところはよく分からない
819:デフォルトの名無しさん
12/03/18 12:12:51.62
>>818
よく分かってないのは怖いな
なんか分かったら教えてくれ
820:デフォルトの名無しさん
12/03/18 23:52:33.31
Radeon HD搭載のノートでは問題なく動いてるのを
5年前のIntel GMA950なノートに持っていくとテクスチャの色がおかしくなった
gl
821:デフォルトの名無しさん
12/03/18 23:55:45.47
glGetErrorでもエラーはないみたいなんだが
S3TCテクスチャ圧縮の強制をONにしたら正しく動作するようになった
URLリンク(www.intel.com)
メモリが足りなかったんだろうな
そんな大量にテクスチャを使ってるわけじゃないので納得できんが
822:デフォルトの名無しさん
12/03/19 01:42:41.09
メモリーリークしてたってのはどういう状態だったの?
メインメモリーがリークしてたんだよね?
823:デフォルトの名無しさん
12/03/21 13:59:23.14
不動小数点で曖昧なところにじゃなくて画面の座標の右から何番目のピクセルに点を打てとか
やりたいんだけどOpenGLじゃそんなことできませんよね?
824:デフォルトの名無しさん
12/03/21 14:06:11.56
glBitmap とかあるぞ。骨董品だけど
825:デフォルトの名無しさん
12/03/21 14:37:34.53
ちゃんと計算すれば普通にできる
826:デフォルトの名無しさん
12/03/21 15:44:34.72
>>823
不動小数点なんて言う非標準の型でなく、きちんと浮動小数点数の型を使えばいいと思うの。
827:デフォルトの名無しさん
12/03/21 16:14:14.15
>>823
できるよ
828:デフォルトの名無しさん
12/03/21 21:15:18.82
次に必要になる数値は 0.375 だ。
829:デフォルトの名無しさん
12/03/21 21:37:27.78
>>828
エスパーわろた
830:デフォルトの名無しさん
12/03/21 22:04:19.10
全スクリーンを覆うポリゴンをレンダリングして
フラグメントシェーダで今のフラグメントのスクリーン位置を取得して
目的の位置ではなかったらdiscard;って書けばOK&OK
831:デフォルトの名無しさん
12/03/21 23:31:52.26
>>828
w
832:デフォルトの名無しさん
12/03/22 00:04:49.46
>>828
glTranslatef (0.375, 0.375, 0.);
これだな。
833:デフォルトの名無しさん
12/03/22 09:01:56.17
何故0.375なのかくやしく。
834:デフォルトの名無しさん
12/03/22 09:08:25.99
くっそうくっそう!
きりのいい数値だと微妙にズレる!
0.5 でもやっぱ駄目だ! 畜生!
その半分 0.25 引いてみるか? 微妙に駄目じゃん!
そのまた半分 0.125 足してみる!
ずれないぜ! やったよカーチャン!
って感じなのかね?
ところで Direct3D だと 0.5 なの? これ
835:デフォルトの名無しさん
12/03/22 10:02:34.15
>>834
ぐぐったらこんなMSDNが
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
836:デフォルトの名無しさん
12/03/22 11:31:41.98
OpenGL ESとEGLを使ってマルチスレッドレンダリングを行いたいのですが、
wglでいうwglShareListsのようなテスクチャの継承は、
どうやって行えば良いのでしょうか。
837:デフォルトの名無しさん
12/03/22 23:08:45.72
なんだDXも同じか。
838:デフォルトの名無しさん
12/03/22 23:11:04.96
>>836
eglCreateContextの第3引数に共有したいContextをぶっ込むとか
839:デフォルトの名無しさん
12/03/23 01:39:20.73
ゲフォとらでおん!のGLの性能差ひどいな。
URLリンク(news.mynavi.jp)
840:デフォルトの名無しさん
12/03/23 11:48:46.31
>>838
出来ました! こんな単純な方法だったんですね…。
教えて頂き、ありがとうございました。
841:デフォルトの名無しさん
12/03/23 21:34:02.49
GTX 680 おっせーな
互換性の GeForce とスピードの Radeon か
842:デフォルトの名無しさん
12/03/24 04:35:10.43
GTX 680 おっせーなと言われたら、
Geforce 8800GT で鼻歌歌ってポリポリしている俺は
843:デフォルトの名無しさん
12/03/24 06:25:31.60
>>842
ついこの前まで俺もそんな感じだったわ
ボードがまるコゲになって交換したけど(´;ω;`)
844:デフォルトの名無しさん
12/03/24 10:07:06.33
>>842
だっせーwww
俺でさえ9600GTだぜw
845:デフォルトの名無しさん
12/03/24 10:16:34.43
いや、8800GT > 9600GTだから。つーか、8800GTのセカンドソースが9800GTだから。
846:デフォルトの名無しさん
12/03/24 10:19:05.88
Wildcat3使いがうらやましそうにそちらを見ている!
847:デフォルトの名無しさん
12/03/24 10:37:52.77
>> 8800GT > 9600GT
え・・・そうなん・・・・orz
848:デフォルトの名無しさん
12/03/24 10:50:42.96
intel915で十分だ
849:デフォルトの名無しさん
12/03/24 16:17:14.05
URLリンク(news.mynavi.jp)
ここまで差があると8800GTとあまりかわらないんじゃね?
850:デフォルトの名無しさん
12/03/24 23:36:59.83
難しいなOpenGL
学習に時間かかりそう
851:デフォルトの名無しさん
12/03/25 00:30:35.35
OpenGL以前の算数基礎学習が足りないと予想
852:デフォルトの名無しさん
12/03/25 12:53:31.84
OpenGL ES 2.0で座標aから座標bまでcフレームで移動するとかってできますか?
今は(b-a)/c*現在のフレーム数で移動していますがわざわざ変数を使わないでやりたいです
853:デフォルトの名無しさん
12/03/25 13:00:02.24
そういうのはOpenGLの管轄じゃないです
854:デフォルトの名無しさん
12/03/25 14:10:46.04
vertex shader を使えばできなくはないけど、それが普通かどうかは知らない。
855:デフォルトの名無しさん
12/03/25 14:13:24.40
OpenGLでbitmapを書き換える処理はありますか?
drawbitmapに該当するものす。
命令名のヒント下さい。
856:デフォルトの名無しさん
12/03/25 14:24:44.45
?
どういう事がしたいのかな?
857:デフォルトの名無しさん
12/03/25 14:30:12.45
drawbitmapが遅かったのでOpenGLで画面の描画だけでなく
そのbitmapの変更も高速にできないものかと思ったので。
858:デフォルトの名無しさん
12/03/25 15:00:07.45
フレームバッファオブジェクト的なもの?
859:デフォルトの名無しさん
12/03/25 15:03:49.40
ええと多分そうです。
裏画面の書き換え(ビットマップイメージのコピー)です。
860:デフォルトの名無しさん
12/03/25 16:24:08.30
androidスレで聞けよ
861:デフォルトの名無しさん
12/03/25 22:05:26.42
画像Aと画像Bをブレンドさせて
画像Aの画像の色、alphaで画像Bの形にするにはどうしたらいいでしょうか
イメージとしてはこんな感じですURLリンク(i.imgur.com)
862:デフォルトの名無しさん
12/03/25 22:30:05.20
シェーダにテクスチャを2つ放り込んで、フラグメントシェーダで計算して出力
863:デフォルトの名無しさん
12/03/26 11:14:35.42
>>861
( ゚д゚)イメージのURL先が403Forbiddenになってて見れないぞ?
864:デフォルトの名無しさん
12/03/26 11:39:14.68
>>863
そんなことない
865:デフォルトの名無しさん
12/03/26 12:00:21.63
□+a=a
866:デフォルトの名無しさん
12/03/26 18:12:58.04
>>861は昔だったらまずステンシルって答えが出てたろうね
867:デフォルトの名無しさん
12/03/26 19:42:37.60
>>861
画像Aと画像Bをブレンドさせたいのか
画像AのRGBと画像Aのalphaで画像Bを表示させたいのか
なんにせよシェーダー使えば簡単
868:デフォルトの名無しさん
12/03/26 22:47:31.42
何かあればすぐシェーダーシェーダーか。
昔のプログラマーなら AND と XOR 使うだろ。
抜き色って言うんだよ。
869:デフォルトの名無しさん
12/03/26 22:57:29.77
透過マスク処理もできんのか?
スプライトも知らんのだろうな
870:861
12/03/26 23:04:45.86
皆さんありがとうございます
ググりましたが
簡単にはできないんですね
Blendfancみたいな感じで出来るかと思ってました
871:デフォルトの名無しさん
12/03/26 23:05:53.37
昔のプログラマが AND と XOR 使ってたから、
今のプログラマもシェーダー使わず AND と XOR でやれという意味?
って言うか、昔のプログラマが AND と XOR 使ってたことと、
今シェーダーを勧めることに何か関係があるの?
昔のプログラマーなら・・・ってのは、どうでもよくないか?
872:861
12/03/26 23:06:08.57
>>867
後者です
873:デフォルトの名無しさん
12/03/26 23:06:47.87
>>868
だからそのシェーダの中で、AND/XOR すればいいだろっての
シェーダって、なんだと思ってるんだよw
874:デフォルトの名無しさん
12/03/26 23:08:07.05
>>871
今ならシェーダー使った方が速い
ま、そんな時代もあったんだよ
875:デフォルトの名無しさん
12/03/26 23:08:23.56
初歩の質問なんですが
OpenGLは定まったテクスチャを描くのはいいようですが
自由なbitmapを描く時は毎回 for で数値化してテクスチャ作ってから描画するので
かえって時間がかかるということになるんでしょうか?
876:デフォルトの名無しさん
12/03/26 23:12:59.63
for で数値化ってなんじゃい?
877:デフォルトの名無しさん
12/03/26 23:13:20.88
CPUで計算せずにシェーダに計算までさせて描かせるという手もある
878:デフォルトの名無しさん
12/03/26 23:15:14.30
なぜBITMAPに拘るのかわからんな。
テクスチャそのものに直接オフスクリーンレンダリングすればよし。
879:デフォルトの名無しさん
12/03/26 23:19:21.72
>>876
表示のビットマップからテクスチャ生成するソースでこういうのを見たので
public Texture makeTexture(Bitmap bitmap) {
…
//画像データの生成
ByteBuffer bb=ByteBuffer.allocateDirect(size*size*4);
bb.order(ByteOrder.BIG_ENDIAN);
IntBuffer ib=bb.asIntBuffer();
for (int y=result.getHeight()-1;y>-1;y--) {
for (int x=0;x<result.getWidth();x++) {
int pix=result.getPixel(x,result.getHeight()-y-1);
int alpha=((pix>>24)&0xFF);
int red =((pix>>16)&0xFF);
int green=((pix>>8)&0xFF);
int blue =((pix)&0xFF);
ib.put((red<<24)+(green<<16)+(blue<<8)+alpha);
}
}
…
>>878
テクスチャそのものに直接描画できるわけですか。
880:デフォルトの名無しさん
12/03/26 23:24:29.91
>>875
エスパーすると、
「画像ファイルなどをロードして、それをテクスチャを使うのはいいようですが(?)、
メモリ空間にビットマップ領域を確保して、そこに計算で描き込んだ内容をテクスチャとして利用すると
かえって時間がかかるという事になるんでしょうか?」
って聞いてる予感がするが、それ、OpenGL 固有の話じゃない。
>>878
多分、BITMAPと言う画像フォーマットの話じゃなくて、
メモリ上の画像領域(=ビットマップ)の事だと思う。 ※用語がわからなくても、Win32API などで、DIB や DDB 扱った事あればわかると思う
881:デフォルトの名無しさん
12/03/26 23:25:35.74
>>879
まずそもそも、コンピュータ上で、画像ってどうそういうデータ、どう扱われる物かは、
わかってるよな?
882:デフォルトの名無しさん
12/03/26 23:26:51.39
メモリ上のデータならポインタ使って変更すればよろし。
883:デフォルトの名無しさん
12/03/26 23:31:10.51
>>880
おおよそそうです。
surfaceviewと自由な内容のbitmap使ってやってたことをOpenGLに置き換えたいのですが
>>879のソース見てかえって遅くなると思ったもので。
884:デフォルトの名無しさん
12/03/26 23:33:55.61
>OpenGLは定まったテクスチャを描くのはいいようですが
>自由なbitmapを描く時は毎回 for で数値化してテクスチャ作ってから描画するので
>for で数値化してテクスチャ作って
この作ったテクスチャが
>定まったテクスチャ
だと思うが?
なんでテクスチャを毎回作り直す必要があるんだ?
885:デフォルトの名無しさん
12/03/26 23:35:56.07
>>884
bitmapの内容が毎フレーム変わるからです。
2Dで使ってます。
886:デフォルトの名無しさん
12/03/26 23:41:55.46
2DもOpenGLで描ける
解決
887:デフォルトの名無しさん
12/03/26 23:46:06.90
>>886
bitmapもということでしょうか?
そてれともテクスチャの内容を(別の描画方法で)自由にできるということですか?
888:デフォルトの名無しさん
12/03/26 23:56:22.89
bitmapなんか使わずに、最初から最後まですべてをOpenGLで描くんだ
何か問題ある?
889:デフォルトの名無しさん
12/03/27 00:00:31.07
リアルタイムでテクスチャにレンダリングして
その結果を使って最終的な絵を出すのは割と一般的な手法だと思うんだが
890:デフォルトの名無しさん
12/03/27 00:07:37.03
ググって2.0以上でないとできないともでてきましたが
テクスチャにレンダリング方法を調べてみます。
どうもありがとうございます。
891:デフォルトの名無しさん
12/03/27 00:12:42.71
>>887
フラグメントシェーダで描けばよろし
892:デフォルトの名無しさん
12/03/27 00:17:08.32
>>891
どうも、調べてみます。
893:デフォルトの名無しさん
12/03/27 00:18:45.88
>>890
ちなみに、根本的な話だけど、例え OpenGL 経由で描画しようがなんだろうが、
自由に生成する内容をテクスチャに書くとしても、結局同じような処理するだけだから、
そこを勘違いしないように
例えば DIBの 先頭ピクセルからループで処理するのと、
テクスチャの 先頭ピクセルからループで処理するのと、
同じような事をしたいなら、結局経由が違うだけで同じ処理するよ。考えてみればわかる事だが
そして、何かのライブラリで簡単に1行で書けるとしても、裏では同じ事してるので、
それはそういう物。 そこだけ曖昧に、勘違いしないように
894:デフォルトの名無しさん
12/03/27 00:20:37.48
あと、>>879 のコード見て気づいたけど、C/C++ じゃなくて Javaで行おうとしてるとして、
JavaやC#でそのレイヤの処理は、元々向いてないので遅くなっても当たり前
895:デフォルトの名無しさん
12/03/27 01:00:30.70
>>872
なら単に1枚のテクスチャをアルファ反転で描画したいってことか
黒いところは描画して白い部分は透明
glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);
896:デフォルトの名無しさん
12/03/27 07:20:31.45
シェーダー使えた方が色々応用が利いて良い
せっかく良い題材なんだから、練習がてらシェーダーを学ぶ事を勧める
897:デフォルトの名無しさん
12/03/27 07:38:48.10
シェーダーってちょっと古いPCだと動かなくなるみたいなイメージあるんですけどどうなんですか?
898:デフォルトの名無しさん
12/03/27 07:49:17.57
ちょっと古い程度なら動く
望む処理速度が出るかどうかは、シェーダーの組み方と、
どのくらいを望んでいるかに依るから何とも言えない
それと、イメージでものを語るな
実際に自分で動かしてみるか、実際に動かした事例を見なさい
899:デフォルトの名無しさん
12/03/27 08:21:47.85
シェーダー使うまでもない今回の例のようなケースが多くて
未だにシェーダーを使ったことがない私が通りますよ。
900:デフォルトの名無しさん
12/03/27 08:54:36.95
2Dなら固定機能で十分な場合が殆どかもなぁ。
シェーダーでないと書けない処理ってでてこんな…。
固定機能一掃しちゃったDirect3Dならともかく、OpenGLは残したわけだし。
まぁ暗号みたいなステート操作まみれのコード書くのは嫌だから、俺はシェーダー使うけど…。
901:デフォルトの名無しさん
12/03/27 10:36:05.54
むしろ2Dこそシェーダが楽
902:デフォルトの名無しさん
12/03/27 14:24:38.21
2Dでのシェーダの話題のようなので、以前書いたサンプルを貼ってみる URLリンク(kuramo.ch)
WebGLだけど、シェーダはGLでもESでもだいたいそのまま動くんじゃないかしら。ソース汚いですけど。
あと、こんなのも
URLリンク(sourceforge.jp)
903:デフォルトの名無しさん
12/03/27 22:54:13.72
よく読まずにリンク先見てMMD on WebGL完成したのか! と思ったらそうじゃなかった
URLリンク(edv.sakura.ne.jp)
904:デフォルトの名無しさん
12/03/28 00:20:15.22
なんで最近3Dやりたがるプログラミング初心者多いんだ・・・
段階的に知識養うってことを知らなすぎる・・・・
905:デフォルトの名無しさん
12/03/28 00:51:24.73
いいんじゃないの。なんか3Dカッコイイ!てのも原動力になるよ。
906:デフォルトの名無しさん
12/03/28 00:53:42.55
今月の日経ソフトに入門的なのが載ってるな
907:デフォルトの名無しさん
12/03/28 00:57:04.43
簡単に絵が出て動いて楽しいからプログラム入門にちょうどいいよ
908:デフォルトの名無しさん
12/03/28 01:40:25.85
マジレスするとSurfaceViewのが簡単だし入門にちょうどいい
909:デフォルトの名無しさん
12/03/28 01:48:59.54
processingでも良い
910:デフォルトの名無しさん
12/03/28 02:05:45.95
原動力になるならいいが、コピペで済まして、すべて他人任せなヤツも多い
911:デフォルトの名無しさん
12/03/28 02:08:47.64
部品の再利用を否定するとかソフトウェア工学完全否定ですか
912:デフォルトの名無しさん
12/03/28 02:42:10.68
部品の再利用じゃなくて、怠惰の方
その区別を出来ないか、言い訳に利用する人が多いってこと
913:デフォルトの名無しさん
12/03/28 02:59:57.14
遊びでやっててそんなに努力とかする気ないよみたいな人もいるだろうし、
気に食わなかったらスルーしたり、からかったりすればいいんじゃない
914:デフォルトの名無しさん
12/03/28 09:30:22.82
車輪の再発明やジェネリックプログラミングの話と
不思議仕様を含んだブラックボックススパゲッティの話を
一緒にするのはやめようぜ
915:デフォルトの名無しさん
12/03/28 13:18:31.13
OpenGLは遊びじゃねえんだよ!!!!!1111
916:デフォルトの名無しさん
12/03/28 14:46:52.27
OPEN GL, IT'S SERIOUS BUSINESS!
917:デフォルトの名無しさん
12/03/28 19:09:54.18
なんだよこの流れww
918:デフォルトの名無しさん
12/03/28 20:56:29.49
>>915
遊びにも使えるよ
919:デフォルトの名無しさん
12/03/28 23:15:51.93
ここまで俺の自演
920:デフォルトの名無しさん
12/03/28 23:16:25.56
もうそうおちゅっちゅ
921:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 23:38:21.60
質問。環境はWindowsXPSP3 と Windows7HomeSP1
OpenGL でオフスクリーンレンダリングを行う要件があるんですが、動作コストの面で、
win32のDCを頼りにする wgl系の手法(wglCreateContext&wglMakeCurrent)と、
OpenGL オフィシャル(拡張)である、framebuffer/renderbuffer を用いる方法と、どちらが手続き内でコストが低いでしょうか
もしも、ライブラリ手続きの面でそれほどコスト差が無く、顕著に現れるのはそれ以外の自前コードだ、と言う場合
出来ればオフィシャルで行きたいと思っています。よろしくお願いします。
922:営利利用に関するLR審議中@詳細は自治スレへ
12/03/29 23:46:40.62
こういう方法もある
URLリンク(marina.sys.wakayama-u.ac.jp)
923:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 01:08:44.02
>>922
それはだから framebuffer の例です
924:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 01:24:26.74
普通にFBOでいいんじゃね。
どっちかが使い物にならないくらい遅いとかは聞いたこと無いが
気になるなら両方作って比較してみたらいいかと。
925:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 04:54:14.24
そのレンダリングした結果をどうしたいかによるんじゃね?
動作コスト云々の前に、まず目的によって使い分けが生じると思うんだけど。
926:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 07:43:52.54
GeForce GTX 590 より 580 の方が良い結果が出て
Radeon HD 6990 より 6950 の方が良い結果が出る世の中。
927:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 14:53:45.97
GPUによって、得意、不得意な処理があるんじゃねーの?
928:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 19:38:39.22
デュアルGPUはクロック下げてるからマルチGPU非対応の旧ソフトだとそりゃ悪いよ
929:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 20:17:52.74
OpenGL ES2.0はglPushAttrib, glPushClientAttribないみたいなんだけど手で一個一個やれって?
930:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 02:31:25.43
>>929
無印OpenGLでも3.0以降コアから外された。(ARB_compatibilityで残ってはいるけど)
glPushAttribの方は高価だから元々避けるべきとされてる。
なんで、どのみちステートマネージャは作らなきゃいけない。
931:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 14:34:40.62
なんかえらい難しいですね。
これ考えた人バカですか?
932:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 15:05:58.37
オフスクリーンレンダリングでテクスチャの一部から先の一部へコピーする方法ありますか?
それを解説してあるいいHPないでしょうか?
933:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 21:15:28.32
先の一部って何だ?コピー先の事か?
glTexCoord2でコピー元の座標を指定して後は普通にコピー先テクスチャに
オフスクリーンレンダリングすればいいだけだろ
934:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 23:06:20.52
>>930
ありがとです
そうなんですか はふぅ・・
935:営利利用に関するLR審議中@詳細は自治スレへ
12/04/03 10:00:55.97
>>933
できるんですね。わかりました調べてみます。