OpenGLスレ Part20
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/09/17(火) 13:15:44.66現在の最新バージョンは4.3
http://www.opengl.org/
http://www.opengl.org/wiki/Main_Page
== OpenGLと一緒に使われるツール&ライブラリ ==
苦労したくなかったらとりあえず入れとけ。
・glx: XからOpenGLを使うためのライブラリ。普通は直接は使わず意識する事はない
・glut: クロスプラットフォームなツールキット。でもさすがに古くさい
・GLFW より新しいマルチプラットフォームなツールキット
・glew: これを入れないと拡張機能が使えないor使いにくい
・glxgears: 歯車が回るベンチマーク。-infoでOpenGLのバージョンが見られる。OpenGLの動作確認はこれで
・glxinfo: 自分の使っているカードのOpenGLの機能が全てリストアップされる。
・OpenTK C#からOpenGLを簡単に使えるようになる。VC#の強力なIntellisenseとあわせてサクサク開発可能。
・OpenSceneGraph: OpenGL を高度に抽象化し、利便性を高めたラッパー。C++ ライブラリ
・OpenGL Mathematics (GLM): GLSL 文法ライクの C++ 数学ライブラリ
== チュートリアルサイト ==
床井研究室: http://marina.sys.wakayama-u.ac.jp/~tokoi/oglarticles.html
OpenGL de プログラミング: http://wiki.livedoor.jp/mikk_ni3_92/
NeHe: http://nehe.gamedev.net/
Tutorials for OpenGL 3.3 and later http://www.opengl-tutorial.org/
Learning Modern 3D Graphics Programming http://www.arcsynthesis.org/gltut/
== 前スレ ==
OpenGLスレ Part19
http://toro.2ch.net/test/read.cgi/tech/1354024560/
== 関連スレ ==
【O3D】HTML5用 3D API WebGL 【Canvas:3D】
http://toro.2ch.net/test/read.cgi/tech/1308761577/
OpenGL 2.0 専用スレ
http://toro.2ch.net/test/read.cgi/tech/1126268759/
0002デフォルトの名無しさん
2013/09/17(火) 13:17:54.79-- CG入門 --
OpenGL以前の普遍的なCGの概念。
CG-ARTS協会の3冊は初心者向け。あとの2冊は上級者向け。
・コンピュータグラフィックス (CG-ARTS協会)
・ビジュアル情報処理 (CG-ARTS協会)
・ディジタル映像表現 (CG-ARTS協会)
・ゲーム制作者になるための3Dグラフィックス技術
・ビジュアルコンピューティング 3次元CGによる画像生成
-- 初心者用 --
・GLUTによるOpenGL入門
・GLUTによるOpenGL入門2 テクスチャマッピング
・OpenGL ES 2.0 プログラミングガイド
-- 上級者用 --
・OpenGL Shading Language (橙本)
・Shader Xシリーズ
・GPU Gemsシリーズ
・GPU Proシリーズ
0003デフォルトの名無しさん
2013/09/17(火) 13:18:43.46-- モダンなOpenGL --
シェーダーベースの最新のOpenGLの学習
・OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング
・OpenGL SuperBible: Comprehensive Tutorial and Reference
・OpenGL 4.0 グラフィックシステム
-- 数学 --
・ゲームプログラミングのための3Dグラフィックス数学
・実例で学ぶゲーム3D数学
・ゲーム開発のための数学・物理学入門
-- 過去の書籍 --
有名だが古いバージョンのOpenGLをもとに書かれているためすでに時代遅れ
通常は買う必要はない
・OpenGLプログラミングガイド 原著第5版 (赤本)
・OpenGL Reference Manual (青本)
== チュートリアルサイト2 ==
OpenGL Step By Step: http://ogldev.atspace.co.uk/
OpenGL Samples Pack: http://ogl-samples.g-truc.net/
0004デフォルトの名無しさん
2013/09/17(火) 15:52:50.14,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0005デフォルトの名無しさん
2013/09/18(水) 07:04:41.870006デフォルトの名無しさん
2013/09/18(水) 07:05:54.080007デフォルトの名無しさん
2013/09/20(金) 01:17:19.33普通に職業グラフィックプログラマはいないのか?
VRAMにどう言う手順でメモリがとられ、サイズの変更ってどういう意味かを考えれば
そう言う発想にすら至らないだろ
glTexImage2Dでテクスチャサイズの変更なんて出来ない
そう言う発想する時点で低レベルを通り越して、GLやらDXを直接触るレベルに至ってないよ
838 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/15(日) 09:06:01.93
例えば、新車を買ったと思え
で、マニュアルを全部熟読したと思え
で、その車で浜から海に突入したと思え
で、言い出してるんだ
マフラーから浸水してエンジン止まってるのに
仕様で車が海に入れないって決まっていればいいのですが…
マニュアル読んでも明記してなくって…
ってレベルだw
0008デフォルトの名無しさん
2013/09/21(土) 14:38:05.65テクスチャサイズの変更なんて無理でしょ?
使用するIDが一緒なら
使うだけユーザーに取っては変更ってなるだろうけど…
って話じゃない?
0009デフォルトの名無しさん
2013/09/21(土) 14:53:09.600010デフォルトの名無しさん
2013/09/21(土) 14:57:06.160011デフォルトの名無しさん
2013/09/21(土) 18:08:39.430012デフォルトの名無しさん
2013/09/21(土) 18:11:30.42延々と訳の分からない自説の妄想を垂れ流していたんだ。
0013デフォルトの名無しさん
2013/09/21(土) 18:30:20.210014デフォルトの名無しさん
2013/09/22(日) 11:38:26.020015デフォルトの名無しさん
2013/09/22(日) 13:28:35.090016デフォルトの名無しさん
2013/09/23(月) 09:14:33.490017デフォルトの名無しさん
2013/09/24(火) 15:23:46.170018デフォルトの名無しさん
2013/09/24(火) 19:35:11.440019デフォルトの名無しさん
2013/09/26(木) 23:22:48.24OpenGLの後釜
0020デフォルトの名無しさん
2013/09/28(土) 08:05:19.18タブレット・スマホとかもあるわけだから。
開発効率面のこともあるし。
0021デフォルトの名無しさん
2013/09/28(土) 11:32:53.320022デフォルトの名無しさん
2013/09/28(土) 12:17:55.730023デフォルトの名無しさん
2013/09/28(土) 17:02:01.88これからは、3DCGも画像処理もOpenCLだよ
GPUとCPUが連動する超並列演算で何でもできる時代
0024デフォルトの名無しさん
2013/09/28(土) 17:34:43.510025デフォルトの名無しさん
2013/09/28(土) 17:57:56.770026デフォルトの名無しさん
2013/09/28(土) 18:47:20.540027デフォルトの名無しさん
2013/09/28(土) 18:59:47.88OpenCLが3DAPIだとでも思ってるのか?
0028デフォルトの名無しさん
2013/09/28(土) 19:21:57.270029デフォルトの名無しさん
2013/09/28(土) 19:44:30.430030デフォルトの名無しさん
2013/09/28(土) 19:49:35.97WindowsだけではOpenGLのversion1しかサポートしていなくて
それより上のバージョンはカスタム・グラフィックス・ドライバをユーザーがインストール必要があるって?
それに加えて一部のドライバーは品質が低いとある
だからANGLEでの描画もサポートするとあるけど
そんな低品質だったり古かったりするドライバーってどこのだ?
0031デフォルトの名無しさん
2013/09/28(土) 19:51:37.87UMAというかGPUとCPUでメモリ空間共用で。
Matleはそうなるのかしら
実は結構楽しみにしている
0032デフォルトの名無しさん
2013/09/28(土) 19:53:04.540033デフォルトの名無しさん
2013/09/28(土) 23:27:27.07どのWebサイトを参考にしたらいいのでしょうか?
一応スレたいのはチェックしましたが、改めてお願いします
0034デフォルトの名無しさん
2013/09/29(日) 21:29:08.84OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング-
0035デフォルトの名無しさん
2013/09/29(日) 22:21:16.360036デフォルトの名無しさん
2013/09/29(日) 22:25:50.53ES2とES3を学びたいのですがそれで大丈夫ですか?
0037デフォルトの名無しさん
2013/09/29(日) 22:37:39.44もどきではない生きたES環境が今は簡単に手に入るのだし
0038デフォルトの名無しさん
2013/10/01(火) 02:35:44.28そこを勉強したいんです
0039デフォルトの名無しさん
2013/10/01(火) 06:07:12.790040デフォルトの名無しさん
2013/10/03(木) 17:59:57.91http://www.itmedia.co.jp/news/articles/1310/03/news070.html
0041デフォルトの名無しさん
2013/10/03(木) 18:44:49.090042デフォルトの名無しさん
2013/10/03(木) 18:58:34.050043デフォルトの名無しさん
2013/10/03(木) 20:40:48.88「bambi」とタイプ
0044デフォルトの名無しさん
2013/10/03(木) 20:41:53.120045デフォルトの名無しさん
2013/10/04(金) 19:34:04.03これよ、これ。
0046デフォルトの名無しさん
2013/10/04(金) 20:27:00.30ルールも操縦方法も忘れたわ
0047デフォルトの名無しさん
2013/10/11(金) 21:30:41.62その場合、その点の位置を求める方法はありますか?
0048デフォルトの名無しさん
2013/10/11(金) 21:40:04.050049デフォルトの名無しさん
2013/10/11(金) 23:35:50.96平行投影と透視投影だけだから
自分でビュー行列をセットすれば出来るはずだけどやったこと無いからしらね
0050デフォルトの名無しさん
2013/10/12(土) 00:00:18.450051デフォルトの名無しさん
2013/10/12(土) 04:11:22.11「視点に収束してる」
0052デフォルトの名無しさん
2013/10/12(土) 13:02:15.28計算で求まるものはないと思うよ
消失点は、視覚に配置された物体の輪郭線から人間が感じ取るものだろ
現実でも、広い屋外なら地平線の無限遠ラインの中央に消失点を感じることが多いだろうけど
狭い屋内ならたいてい複数の消失点があるように感じると思われ
0053デフォルトの名無しさん
2013/10/12(土) 13:35:19.97もちろん、上で書いたように、それにはモデルビュー行列とは別に
平行線を与える必要があるが。
0054デフォルトの名無しさん
2013/10/12(土) 19:51:23.71アホか。
0055デフォルトの名無しさん
2013/10/12(土) 20:58:36.14えっ!?
0056デフォルトの名無しさん
2013/10/12(土) 23:17:28.43ギャグかそれは
0057デフォルトの名無しさん
2013/10/12(土) 23:47:52.72消失点がない視覚世界を生きている人のお通りです。
大和絵みたいな光景の First Person View なんだろうか?
左脳偏重文化が全人類の中で突出している日本では有り得るかも。
0058デフォルトの名無しさん
2013/10/13(日) 00:16:30.51下のページ見て、この状態でカメラがバンク回転すると消失点はどう移動するか考えてみてくれ
http://www.fsinet.or.jp/~maoi/tousi.html
結局のところ消失点はどこにでもとれる、絵画で物のパースとるための単なる方便だと思うよ
0059デフォルトの名無しさん
2013/10/13(日) 03:14:27.93あなどれない
0060デフォルトの名無しさん
2013/10/13(日) 07:38:38.41モデルビュー行列とは別に「平行線が要る」って書いてるだろ。
53ちゃんと読めよ
0061デフォルトの名無しさん
2013/10/13(日) 07:40:31.300062デフォルトの名無しさん
2013/10/13(日) 08:52:49.700063デフォルトの名無しさん
2013/10/13(日) 20:46:57.250064デフォルトの名無しさん
2013/10/13(日) 20:53:01.21その程度の処理すらしてない奴らばかりなのか?
0065デフォルトの名無しさん
2013/10/13(日) 22:00:39.29視点を囲むように配置してみたのだけど、
地面を表現する平面ポリゴンとのマッチングに違和感感じてる。
垂直方向に大きく視点移動したりするのだが、
視点に合わせてキューブマップを移動させても違和感。
基本的なことだと思うのだけど、どうやればいいの?
0066デフォルトの名無しさん
2013/10/13(日) 22:09:20.560067デフォルトの名無しさん
2013/10/13(日) 22:14:09.110068デフォルトの名無しさん
2013/10/13(日) 22:18:11.280069デフォルトの名無しさん
2013/10/14(月) 06:59:33.500070デフォルトの名無しさん
2013/10/14(月) 09:28:56.770071デフォルトの名無しさん
2013/10/14(月) 10:49:43.04たとえば?
0072デフォルトの名無しさん
2013/10/14(月) 10:53:29.77あと手前にポリゴンがあってもトンネル効果で奥側のポリゴンが見えるかも知れん、量子的確率的に
0073デフォルトの名無しさん
2013/10/14(月) 10:57:13.460074デフォルトの名無しさん
2013/10/14(月) 11:23:00.24カメラが高速近くで移動するとしてさ
たった1秒間で30万kmちかく移動してしまうんだろ
たとえばF-ZERO FX くらいのレースゲームをそれで作るとして、
どれくらいの量のポリゴンをメモリに入れておかないといけないの?
ちょっと見積もってよ
> 量子的確率的に
その確率は年末ジャンボ1等に当たるより低いんだろ
大抵の人には見えんのじゃないか?
0075デフォルトの名無しさん
2013/10/14(月) 11:25:34.97光速で動くのをとらえようとしたら 何 fps の性能が必要なんだろ
0076デフォルトの名無しさん
2013/10/14(月) 11:31:30.97そもそも仮想世界の相対性理論なんだ、光速が秒速30万kmを仮定しなくてもいい、単位系の問題
>大抵の人には見えない
その通りだな、まあ>>69は量子力学と言う言葉は知らず、トンネル効果という言葉だけ知ってたんだろうな
0077デフォルトの名無しさん
2013/10/14(月) 12:43:46.940078デフォルトの名無しさん
2013/10/14(月) 12:45:22.83スレの住人はてめえの母ちゃんじゃねえんだよ。
0079デフォルトの名無しさん
2013/10/14(月) 12:56:31.45それえもいいけど
100%忠実なシミュレーションモデル構築するよりも
速度優先で疑似処理した方がスムースに受け入れられる場合も多い
0080デフォルトの名無しさん
2013/10/14(月) 13:07:19.71> 速度とポリゴン数は関係ないだろ
関係あるよ。
たとえば町や山や川などが入る30万km四方の空間をポリゴンで表現している時、
普通ならその空間内のカメラが置かれたごく小規模の部分空間のポリゴンだけメモリに入れて、
その部分空間からカメラが出そうになったら隣の部分空間をメモリに入れて、
というように処理できる。
でもそれは空間の広さに比べて移動スピードが遅いからできるテクニックであって、
1秒間に橋から端まで移動してしまうスピードなら使えんと思うぞ。
つまり初めから空間全体のポリゴンをメモリに入れて置かなければ処理が間に合わない。
ちょうど橋から端まで突っ切ってしまうのならまだ誤魔化しようもあるが、
途中で止まったりスピードが変わったりすると誤魔化すことも難しくなるし。
> そもそも仮想世界の相対性理論なんだ、光速が秒速30万kmを仮定しなくてもいい、単位系の問題
光速がどれくらいの速度だと仮定したの仮想世界の話をしてるんだ?
>>69 は科学者ならとかじゃなくてプログラマならと言ってるんだから、
そう特殊なら話をしているわけではないと思うが
0081デフォルトの名無しさん
2013/10/14(月) 13:35:16.480082デフォルトの名無しさん
2013/10/14(月) 14:54:53.230083デフォルトの名無しさん
2013/10/14(月) 15:43:34.08アホだな、数学ができてない
空間のスケールとポリゴンの密度はプログラマが任意に決定出来るパラメータだろ?
好きなように設定ですればよい
それこそ>>81でもいいし、>>82と言い換えることも出来る
光の速度も任意に決定出来るパラメータに過ぎない、仮想世界なんだから
0084デフォルトの名無しさん
2013/10/14(月) 15:48:59.72・1秒間で30万kmちかく移動する
・F-ZERO FX くらいのレースゲームをそれで作る
なんていうか、>>76の言いたいことはもっとも、
というかそもそも最初の冗談に真面目に付き合うのもどうかと思うが、
それはそれとして、>>76はお題を無視したレスじゃね
とちょっと思ったりなんかして・・・
このお題は俺には無理というのなら、べつにレスしなきゃいいんだし
0085デフォルトの名無しさん
2013/10/14(月) 15:53:24.37ならお題として不足
空間あたりのポリゴン数を減らせば(空間のスケールを任意に上げれば)
いくらでもメモリに収めることは可能
といってるのがわからんか?
コレがわからないなら、例えば銀河を表すCGを作ろう、となった時に
銀河にはいくつの星があるんだ、メモリ足りないだろ、従って銀河のCGを作るのは無理
といってるのと同じ
0087デフォルトの名無しさん
2013/10/14(月) 16:26:16.32適度であれば、の話だが
0088デフォルトの名無しさん
2013/10/14(月) 16:31:51.51わろた
0089デフォルトの名無しさん
2013/10/16(水) 05:20:59.96ひたすらに完全シミュレートなんてを求めてもしかたない
0090デフォルトの名無しさん
2013/10/16(水) 08:28:31.280091デフォルトの名無しさん
2013/10/16(水) 08:55:49.73基本押さえず応用やって、問題点見つけても回避する力がない
0092デフォルトの名無しさん
2013/10/19(土) 12:26:30.03Updates to the OpenGL API 4.4 and OpenGL Shading Language 4.40 - opengl.org news
http://www.opengl.org/news/permalink/updates-to-the-opengl-api-4.4-and-opengl-shading-language-4.40/
0093デフォルトの名無しさん
2013/10/21(月) 18:22:21.33具体的にはglDrawElementsでレンダリングするモデルにモデルデータとは別にalphaを掛ける効果を得たいです
0094デフォルトの名無しさん
2013/10/21(月) 22:26:03.140095デフォルトの名無しさん
2013/10/21(月) 22:44:08.640096デフォルトの名無しさん
2013/10/22(火) 00:38:30.630097デフォルトの名無しさん
2013/10/25(金) 06:33:56.89耳が痛いわ
0098デフォルトの名無しさん
2013/10/25(金) 19:46:02.90一緒にアップグレードしたXcordのせいか…?
0099デフォルトの名無しさん
2013/10/25(金) 22:26:15.220100デフォルトの名無しさん
2013/10/26(土) 09:50:00.04んですが、正直OpenGLの知識は皆無で、ネットのいろんなサイト
を参考にして作リました。
で、皆さんは、やっぱり本を2~3冊は買って勉強
してるんでしょうか。
それとも自分みたいなもんは、ネットで勉強してから良本
を買ったほうが良いのでしょうか。
アドバイスをお願い致します。
0101デフォルトの名無しさん
2013/10/26(土) 10:49:30.97本を買う金がもったいないなら、図書館で読めばいい。
そして一番重要なのは、ネットや本の知識よりも、実際に何時間手を動かしたかということ。
あとはできれば英語に抵抗がないといい。答えの多くは海外のフォーラムにある。
0102デフォルトの名無しさん
2013/10/26(土) 12:49:41.880103デフォルトの名無しさん
2013/10/27(日) 00:39:26.69http://codezine.jp/article/detail/7424
0104デフォルトの名無しさん
2013/10/27(日) 13:07:44.30デフォルトでは視点は0.0, 0.0, 0.0にあり、projection行列のnearを1.0にした場合、
z≦-1.0のポリゴンが表示されるのだと思っていました。
ところが、実際にはz=0.0の画像が原寸で表示されています。
※正射影になっているわけではありません。
そこで、「デフォルトでの視点位置は0.0, 0.0, 1.0にある(したがって、z≦-(near+1.0)のポリゴンが表示される)のだろうか」と思ったのですが、
nearと視点のz値を同じ値だけ変えると、また違う表示になってしまいます。
「z=0.0の位置にあるポリゴンを原寸で表示する(projectionのleft, rightと同じ幅を持つポリゴンが、ちょうど画面いっぱいに表示される)」
状態を保ちつつ画角を変えたいのですが、どのように計算すればいいのでしょうか。
よろしくお願いします。
0105デフォルトの名無しさん
2013/10/27(日) 13:43:13.85もし式がぱっと思う浮かばないような馬鹿なら、高一からやり直せ。
0106デフォルトの名無しさん
2013/10/27(日) 13:52:25.10そしたら↓なんか不要だし
>※正射影になっているわけではありません。
で、本題だけど多分glMatrixMode(GL_MODELVIEW);のあとにglFrustumしてるとかそんなとこじゃないの?
0107デフォルトの名無しさん
2013/10/27(日) 14:27:22.48ベクトルの内積は、向きを判断したい時とか、外積は、法線を求めたい時とか、大体理解できたんですが、
行列の転置の意図がよくわかりません。
OpenGLのサンプルコード読んでる時に、たまに行列を転置するコードが出てきて、そんたんびに、
何してんのこれ ( ゚д゚)ポカーン となります。誰かエロい人教えてくだしあ
0108デフォルトの名無しさん
2013/10/27(日) 14:37:01.450109デフォルトの名無しさん
2013/10/27(日) 14:40:19.30回転行列の場合は逆行列は転置行列と等価になる
一般的に逆行列を求めるのにはコストが掛かるが
転置行列についてはコストはほとんど無視できる
0110デフォルトの名無しさん
2013/10/27(日) 15:03:42.27あぁ! 簡易的に回転行列の逆行列を求めてたんですね
目鱗です! ありがとうございました!
0111デフォルトの名無しさん
2013/10/27(日) 15:09:03.220112デフォルトの名無しさん
2013/10/27(日) 17:11:50.610113デフォルトの名無しさん
2013/10/27(日) 17:37:18.820114デフォルトの名無しさん
2013/10/27(日) 18:09:51.080115デフォルトの名無しさん
2013/10/27(日) 18:15:12.80三角形がイメージできていればいくらだって応用が利くし、
視錐台なんて、そこに二本の線を入れるだけの話だ。
習ったことが実用出来ないというのは、つまり適性がないんだよ。
0116デフォルトの名無しさん
2013/10/27(日) 18:24:40.970117デフォルトの名無しさん
2013/10/27(日) 18:34:15.390118デフォルトの名無しさん
2013/10/27(日) 19:26:54.070119デフォルトの名無しさん
2013/10/27(日) 19:38:26.260120104
2013/10/27(日) 20:13:15.05・視点を初期位置から動かしていない
・nearが1.0なのに、z=0.0のポリゴンが表示されている。
というのがなぜなのかよくわからないんです。
この状態ならz<=-1.0のポリゴンしか表示されないはずですよね?
glFrustumと同じことをやっていますが、
正確にはprojectionMatrixとmodelviewmatrixを掛け合わせたものをシェーダに渡しています。
なのでglMatrixModeとかは使っていません。
0121デフォルトの名無しさん
2013/10/27(日) 21:37:15.15>この状態ならz<=-1.0のポリゴンしか表示されないはずですよね?
判断できるわけが無いだろう。
アホか。
0122デフォルトの名無しさん
2013/10/27(日) 23:17:53.23マトリックスをprintfでもして自分で計算してみたらきっとわかるよ
0123デフォルトの名無しさん
2013/10/28(月) 10:16:15.71これやってみ
0124デフォルトの名無しさん
2013/10/28(月) 21:12:50.230125デフォルトの名無しさん
2013/10/31(木) 03:29:33.33シェーダーでニアクリップ処理が上手くされてないなら、計算どおりの表示になるわけないw
シェーダー使わないで試してから
>式自体は理解しています。計算どおりの表示にならない
とか言ってくれないかな?
0126デフォルトの名無しさん
2013/10/31(木) 13:31:47.260127デフォルトの名無しさん
2013/10/31(木) 22:40:50.240128デフォルトの名無しさん
2013/11/01(金) 02:32:05.07>式自体は理解しています。計算どおりの表示にならないので質問しています。
式を理解した所で、OpenGLを理解して式を当てはめる事が出来ないなら
それは式を理解しています、とは言わないんだよ?
でOpenGLのそんな根本にバグがあるわけがなく、君の間違った理解してない計算通りの表示に100%なってるからw
0129デフォルトの名無しさん
2013/11/01(金) 02:59:21.370130デフォルトの名無しさん
2013/11/01(金) 09:07:35.980131デフォルトの名無しさん
2013/11/01(金) 11:38:36.66実行系を開発版にしたところ無事改善しました
お騒がせいたしました
0132デフォルトの名無しさん
2013/11/01(金) 11:56:33.390133デフォルトの名無しさん
2013/11/01(金) 17:20:56.30あーだこーだ理由をつけて、
エンジニアなのに、
本質を理解しないで、
ちょっとググっただけで、
自分がわかったつもりになって、
自分勝手に我流でやって、
バグを出しまくりで、
人のせいにして、
進歩しないやつ。
プライドだけは高いんだよ。
まあ、そのうちコーダーとしてしか使われなくなるんだよ。
0134デフォルトの名無しさん
2013/11/01(金) 17:58:51.91> エンジニアなのに
ここで、どうやって相手がエンジニアかどうか判断するの?
勝手にエンジニアだと思い込んでる?
0135デフォルトの名無しさん
2013/11/01(金) 18:55:34.860136デフォルトの名無しさん
2013/11/02(土) 00:43:41.35それの愚痴だろ。
0137デフォルトの名無しさん
2013/11/02(土) 00:44:16.180138デフォルトの名無しさん
2013/11/02(土) 00:48:16.500139デフォルトの名無しさん
2013/11/02(土) 04:55:25.730140デフォルトの名無しさん
2013/11/02(土) 13:13:24.510141デフォルトの名無しさん
2013/11/02(土) 15:11:20.970142片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/03(日) 20:58:40.54ちょっとぼやけるんだよね。くっきり表示する方法を教えて下さい。
0143片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/03(日) 21:00:13.73ちょっとぼやけるんだよね。くっきり表示する方法を教えて下さい。
0144デフォルトの名無しさん
2013/11/03(日) 21:23:23.23拡大した画像でテクスチャ作れよぼけ
0145デフォルトの名無しさん
2013/11/03(日) 21:38:00.81ニアレストネイバーでサンプルするか半ドットずれてるのを戻すかすれば治るケース
0146片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/03(日) 22:49:18.110147片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/03(日) 23:22:35.870148片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/03(日) 23:36:50.190149デフォルトの名無しさん
2013/11/03(日) 23:56:03.33glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
とかしとけばとりあえずボケないんじゃなかろうか
0150デフォルトの名無しさん
2013/11/03(日) 23:57:29.70そもそもスクショって言うが、オフスクリーンバッファには描画してないのかい?
0151デフォルトの名無しさん
2013/11/03(日) 23:58:52.300152片山博文MZコスモ ◆T6xkBnTXz7B0
2013/11/04(月) 12:12:53.96マトリックス風のスクリーンセーバーもあるよ!!
http://katahiromz.web.fc2.com/xscreensaverwin/
https://github.com/katahiromz/XScreenSaverWin
0153デフォルトの名無しさん
2013/11/04(月) 13:26:00.49是非とも長生きしてほしいし、2chに沢山書き込んでほしい。
0154デフォルトの名無しさん
2013/11/04(月) 14:01:05.46オリジナルの作者は嫌だろうし、移植じゃなく新しいプロジェクトでやればいいのに
0155デフォルトの名無しさん
2013/11/04(月) 23:55:45.55座標を追加して折れ線グラフのようにプロットしたいと思っています。
とりあえず、単調増加するダミーの頂点配列を用意したうえでバーテックス
シェーダにattributeとして渡してやって、そこで座標変換してやるという方法を
思いついたのですが、ほかにもっと簡単な方法ってありますか?
0156デフォルトの名無しさん
2013/11/05(火) 00:10:04.96お世話になります。
私、責任者の加茂と申します。以後、宜しくお願い致します。
http://www.karilun.com/img_shop/15/ss52_1368685958.jpg
浪速建設様の見解と致しましては、メールによる対応に関しましては
受付しないということで、当初より返信を行っていないようで、今後につい
てもメールや書面での対応は致しかねるというお答えでした。
このように現在まで6通のメールを送られたとのことですが、結果一度も
返信がないとう状況になっています。
私どものほうでも現在までのメール履歴は随時削除を致しております
ので実際に11通のメールを頂戴しているか不明なところであります。
弊社としましても今後メールでのやり取りを差し控えたく、浪速建設様
と同行の上でお会いさせていただきたい所存です。
http://rfi.a.la9.jp/hn203/set/Avatar_set/Avatar_set.html
0158デフォルトの名無しさん
2013/11/05(火) 22:50:01.61GL_LINE_STRIPにしないと破線になりますね。
それ以前に、>>155で質問したのは描画じゃなくて頂点座標を得る方法なんですが。
一応>>155に書いた案で実装してうまく動いたようなので解決ということにしておきます。
0159デフォルトの名無しさん
2013/11/05(火) 23:04:45.65プロットしたいというのは描画したい(画面にプロットしたい)という意味じゃなかったの?
プロットしたい = 頂点座標を得えたい という意味?
0160デフォルトの名無しさん
2013/11/05(火) 23:20:46.75何言ってんだこいつw
偏差値が10違うと会話が成り立たないうんぬんw
0161デフォルトの名無しさん
2013/11/05(火) 23:22:39.20書き方がよくなかったですかね。
確かにやりたいことは描画することなんですが、一次元の数値の配列はそのままでは
描画することができないので、これを描画できる頂点配列の形にしたいということでした。
0162デフォルトの名無しさん
2013/11/06(水) 00:20:00.260163デフォルトの名無しさん
2013/11/06(水) 00:56:08.370164デフォルトの名無しさん
2013/11/07(木) 23:25:30.71最近のドキュメントには記述がないんだが、廃止されたの?
廃止されたとしたら、代替の機能って何を使えばいいんだろうか?
0165デフォルトの名無しさん
2013/11/08(金) 00:46:55.610166デフォルトの名無しさん
2013/11/08(金) 00:52:34.830167デフォルトの名無しさん
2013/11/10(日) 21:30:30.84wglMakeCurrentを呼んだとき、たまに失敗してFALSEが返ってくるのにGetLastError
ではERROR_SUCCESSしか返ってこない場合があるんですが、ほかに何か
原因を調べる方法はあるでしょうか?
wglMakeCurrentがFALSEを返す場合は確かに操作が失敗しているようで、そのまま
後続の処理をしようとしても全部失敗しますが、GetLastErrorがERROR_SUCCESSのとき
wglMakeCurrentを再度呼ぶと今度は成功するようです。
一応、同じHGLRCを別のスレッドからアクセスしようとするとERROR_INVALID_ACCESSで
失敗するので、その排他制御は入れています。
0168デフォルトの名無しさん
2013/11/22(金) 06:53:42.55このサイトの「ストリップ長を長く取りすぎてキャッシュのヒット率が悪く」
って部分がよくわからないのですが、ストリップ長を長くしすぎるとなぜダメなのでしょうか?
また、「キャッシュに当てるためにストリップ長は16ぐらいでいい」ってことは、
ストリップ長が16程度に達したら、分割すべきってことでしょうか?
0169デフォルトの名無しさん
2013/11/22(金) 11:26:55.59キャッシュヒット率が必要なだけ高ければ何でもいいよ。
ストリップが長いときにヒット率が悪いなら、そのストリップを単に 16 トライアングルで分割したってヒット率は変わらないよ。
ていうかその記事で分からないなら、何を説明しても無駄。ストリップ最適化のツールはあるから、それ使ってればいいよ。
0170デフォルトの名無しさん
2013/11/22(金) 14:24:03.830171デフォルトの名無しさん
2013/11/23(土) 08:02:32.53コンテキストorフレームバッファorプログラム?
0172デフォルトの名無しさん
2013/11/23(土) 20:10:16.46そうじゃない >>169
トライアングル・ストリップは最初の2個のトライアングルを選ぶと
3つめ以降は自動的に決まってストリップは一直線に伸びていく(選択の余地がない)
この時キャッシュのヒット率は理想的な場合で1つの頂点を2ストリップがなぞるので50%。
それに対してトライアングルズで自由に近くのトライアングルを選んでいけば16個のキャッシュ程度でも90%とかいうレベルでヒットするので、
もはやストリップの時代は終わったんだあきらめなという話
0173デフォルトの名無しさん
2013/11/27(水) 12:26:03.060174デフォルトの名無しさん
2013/11/27(水) 13:05:32.770175デフォルトの名無しさん
2013/11/29(金) 11:33:38.49この映像の〜30秒までの3Dグラフィックスがきめ細やかで美しいと思ったのですが、
こういった映像はOpenGLからプログラミングでもって作られているのでしょうか?
それとも、プログラミングは必要なく3D制作ソフトウェアや動画編集ソフトを組み合わせて作られているのでしょうか?
0176デフォルトの名無しさん
2013/11/29(金) 11:51:17.350177デフォルトの名無しさん
2013/11/29(金) 14:02:00.58Software used: After Effects and Cinema 4D
って書いてあるぞ
0178デフォルトの名無しさん
2013/11/29(金) 15:10:01.33ありがとうございます。
0179デフォルトの名無しさん
2013/12/02(月) 19:47:35.450180デフォルトの名無しさん
2013/12/02(月) 19:51:17.780181デフォルトの名無しさん
2013/12/02(月) 20:55:21.02http://www.recruitcareer.co.jp/news/old/2013/131105_01/
0182デフォルトの名無しさん
2013/12/03(火) 12:26:58.970183デフォルトの名無しさん
2013/12/06(金) 13:22:47.810184デフォルトの名無しさん
2013/12/06(金) 22:20:24.920185デフォルトの名無しさん
2013/12/07(土) 11:54:13.25GPUを使って、巨大な行列の乗算を行いたいのですが、
OpenGLで4×4以外の行列の計算はどのようにすればできますか?
いろいろ調べても出てこないので、OpenGLでは4×4以外の行列計算はできないのではないかと思い始め、
どうしても納得がいかなかったので質問させてもらいました。
スレ違いなら誘導していただければと思います。
0186デフォルトの名無しさん
2013/12/07(土) 12:02:22.910187デフォルトの名無しさん
2013/12/07(土) 12:41:27.36OpenGLは3D表示用だから、3D表示に必要な分(行列なら4x4まで)しか対応しないと考えるのが自然だと思うけど、何が納得いかないのさ?
あと、誘導先はOpenClも…
0188デフォルトの名無しさん
2013/12/07(土) 12:48:45.020189デフォルトの名無しさん
2013/12/07(土) 13:07:29.13なぜOpenGLを使いたかったかを書いていませんでした。
端的に言えば、iOS上でGPUによる行列計算をしたかったためです。
始めCUDAやOpenCLならできそうだと思い調べていたのですが、どうやらiOS上では動かない(対応していない)とわかりました。
そこでOpenGLはiOS上で動くことを思い出し、調べていた次第です。
大きい行列の計算が可能そうであれば使わせてもらおうかな、と。
大きい行列計算はできない、という情報が見当たらなかったので、今回質問させてもらいました。
0190デフォルトの名無しさん
2013/12/07(土) 13:10:39.38でも逆行列の計算とかだと再帰計算だからGPGPUとは相性悪いわな
そもそも何故GPUじゃないとダメなの?
0191デフォルトの名無しさん
2013/12/07(土) 13:29:53.94よく愚者が思いつくことを、今回も思いついた馬鹿がいたと言うだけの話だろう。
0192デフォルトの名無しさん
2013/12/07(土) 15:23:09.65OpenGL ESはモバイル用にOpenGLの機能を刈り込んだものだから、ますます3D必要以外の機能は貧弱で当たり前なので、わざわざ「できない」と言う必要がないだけ。
iOSなら、Accelerate Frameworkについて調べてみるといいかも。最近は画像処理に力を入れてるけど、汎用の計算機能もあったはず。
どうなってんだ
0194デフォルトの名無しさん
2013/12/11(水) 01:09:41.49図書館に言えば買ってくれるか、他所から借りてきてくれるんじゃね?
自力で探すなら、
っ http://calil.jp/
0195デフォルトの名無しさん
2013/12/11(水) 08:32:07.27OpenGL Insights 日本語版入れたり
0196デフォルトの名無しさん
2013/12/11(水) 09:33:29.63カビが生えて化石化して古代文明の遺産みたいな本
事務で聞いたら買ってくれるみたいやったわ
よし、おれも大学の図書館改革していくぞ〜
まずはOpenGL 4.0 グラフィックシステムいれるわ
0198デフォルトの名無しさん
2013/12/12(木) 00:43:01.84GPUで汎用計算をやろうZEみたいな話をGPGPUとか言ったりすることはご存じですか。
ご存知でしたらそれでググれ
0199デフォルトの名無しさん
2013/12/12(木) 09:43:28.27ところでMantleどうなった?
0200デフォルトの名無しさん
2013/12/14(土) 01:01:13.66図書館の新刊希望出す奴は自己中ばっかりだな
0201デフォルトの名無しさん
2013/12/14(土) 09:21:26.35それを聞き入れる方に問題がある
0202デフォルトの名無しさん
2013/12/14(土) 10:15:26.920203デフォルトの名無しさん
2013/12/14(土) 11:17:55.66COMの本なんかもう書店じゃ見かけんし、Macintosh Toolboxは古本でも
なかなか見つからん。
0204デフォルトの名無しさん
2013/12/14(土) 21:34:23.67「図書館の自由に関する宣言」
第1 図書館は資料収集の自由を有する
2. 図書館は、自らの責任において作成した収集方針にもとづき資料の選択および収集を行う。その際、
(3) 図書館員の個人的な関心や好みによって選択をしない。
(4) 個人・組織・団体からの圧力や干渉によって収集の自由を放棄したり、紛糾をおそれて自己規制したりはしない。
(5) 寄贈資料の受入にあたっても同様である。図書館の収集した資料がどのような思想や主 張をもっていようとも、それを図書館および図書館員が支持することを意味するものではない。
0205デフォルトの名無しさん
2013/12/15(日) 00:06:50.440206デフォルトの名無しさん
2013/12/15(日) 01:41:18.210207デフォルトの名無しさん
2013/12/15(日) 21:21:49.40おすすめの本はありますか?
0208デフォルトの名無しさん
2013/12/16(月) 01:22:13.19の
Chapter 9
に詳しく書いてあるよ
0209デフォルトの名無しさん
2013/12/16(月) 13:11:13.69ありがとうございます。
読んでみます。
0210デフォルトの名無しさん
2013/12/19(木) 00:47:18.81の最初の数ページだけ読んだが、なんか訳がおかしい。日本語になってない所がある。
0211デフォルトの名無しさん
2013/12/19(木) 08:57:17.390212デフォルトの名無しさん
2013/12/19(木) 10:11:08.38見つけたら出版社に報告すれば
割引券がもらえるかもしれないし
放置されるだけかもしれない
0213デフォルトの名無しさん
2013/12/22(日) 17:26:57.93よくわからない挙動にぶつかったので。
GLSL中で、
uBoneTransformMatrix[1][0][3]==2.0←true
しかし、
ivec3 testVec=ivec3(1,0,3);
uBoneTransformMatrix[testVec.x][testVec.y][testVec.z]==2.0←false(trueのはず・・・)
になってしまいます。
ちなみに、uBoneTransformMatrixは
uniform mat4 uBoneTransformMatrix[16];と宣言してあります。
0214デフォルトの名無しさん
2013/12/22(日) 20:21:15.960215デフォルトの名無しさん
2013/12/23(月) 00:14:33.650216デフォルトの名無しさん
2013/12/26(木) 02:47:37.22日本語で書かれたOpenGL3.0以降の本格的な参考書って少ないから、けっこう需要はあるだろうに。
0217デフォルトの名無しさん
2013/12/26(木) 11:36:24.89値段が4000円ぐらいだったら売れるんじゃね.前のは12000円ぐらいしたし厳しかった.
0218デフォルトの名無しさん
2013/12/26(木) 21:43:15.80もう固定パイプ要らないねん
0219デフォルトの名無しさん
2013/12/26(木) 22:34:40.91固定パイプ要らないのなら使わなきゃいいだけでは?
そういうことではない?
0220デフォルトの名無しさん
2013/12/27(金) 00:22:27.160221デフォルトの名無しさん
2013/12/27(金) 01:41:41.170222デフォルトの名無しさん
2013/12/28(土) 01:38:53.84大学とか専門学校のCGの演習系の授業とか、取っ掛かりはどうしてるんだろ?
特に即戦力を求められる専門学校で時代遅れの実装について勉強するわけにもいかんけど、
シェーダーベースになってから、とりあえずテクスチャ貼ってライティングされた立方体を
くるくる回すまでのハードルがえらい高くなった気がする。
0223デフォルトの名無しさん
2013/12/28(土) 01:53:43.000224デフォルトの名無しさん
2013/12/28(土) 03:43:34.030225デフォルトの名無しさん
2013/12/28(土) 09:55:59.76NVIDIAはDeprecatedになった機能もこれからもちゃんと実装するよって言ってた。
(ソースは探せばどっかにあると思う)
しかし, IntelかAMDの実装がDeprecatedになった機能をサポートしなくなって
glBeginが使えなくなるか
使えても計算がCPUで行われるような実装になっているかもしれない。
というかWindowsをインストールした時点で
GPUドライバをインストールしてなくても
ソフトウェア実装のOpenGL1.1相当の機能は使えなかったっけ?
お手軽簡単にOpenGL使いたい人はglBeginを使い
真面目にパフォーマンスが必要な人はDrawElementsInstancedBaseVertexBaseInstanceを使えばいいんじゃない?
0226デフォルトの名無しさん
2013/12/28(土) 19:32:01.17座標変換し出すと突然ハードルが上がる
(この辺からついて来れない学生が出てくるし・・・)
0227デフォルトの名無しさん
2013/12/28(土) 22:46:15.94絶版とか勘弁してほしいわ・・・
丸善がんばれ。
0228デフォルトの名無しさん
2013/12/28(土) 22:48:47.95640x480の2D系の座標にする時に
glViewport(0,0,640,480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 640, 480, 0, -1, 1);
みたいな感じで設定してるサンプルコードをよく見かけますが、なぜ
glOrtho(0, 639, 479, 0, -1, 1);
ではないんでしょうか?
leftが0だったらrightは639になりそうな気がしてしまうんですが・・・。
0229228
2013/12/28(土) 22:53:18.70glOrthoの方はleft, rightなので0, 639になるんじゃないの?と不思議に思ってしまいました。
0230デフォルトの名無しさん
2013/12/28(土) 23:01:13.230から0を指定するのか?
0231デフォルトの名無しさん
2013/12/28(土) 23:24:34.43出来れば、rightに639ではなく640を指定する理由を
直接教えては頂けないでしょうか?
0232デフォルトの名無しさん
2013/12/28(土) 23:26:15.730233デフォルトの名無しさん
2013/12/28(土) 23:28:29.880234デフォルトの名無しさん
2013/12/28(土) 23:30:38.990235デフォルトの名無しさん
2013/12/28(土) 23:41:05.420236デフォルトの名無しさん
2013/12/28(土) 23:41:37.01アマゾンの瀬取り屋がIT関連の本を買い占めてやがんだよな
ES2.0ガイドは持ってるけど定価4000円しないのに7500円で売ってる
むかつくわ〜
0237228
2013/12/28(土) 23:42:06.96幅640ピクセルの場合、一番左端の座標は0となって、
一番右端の座標は639になりますよね。
なので0と639を指定するのでは?と単純に考えてしまいました。
リファレンス確認したら↓こんな説明になってましたが、
そもそも左端と右端の座標を指定するという考えが間違ってんですかね。
http://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
> Specify the coordinates for the left and right vertical clipping planes.
0238デフォルトの名無しさん
2013/12/28(土) 23:46:41.07ドットで数えることに何の意味があるの?
0239デフォルトの名無しさん
2013/12/28(土) 23:49:38.21中学校で習わなかったか?
0240228
2013/12/28(土) 23:58:40.50ピクセルの中心位置と思いっきり勘違いておりました・・・。
済みません、スレ汚し失礼しました。
0241デフォルトの名無しさん
2013/12/29(日) 00:09:21.29シェーダーベースのOpenGLの入門書としては数少ない選択肢だよな
0242デフォルトの名無しさん
2013/12/29(日) 11:53:07.950243デフォルトの名無しさん
2014/01/01(水) 10:56:05.82最近のOpenGLは実質的にシェーダーが全てだったでござる
0244デフォルトの名無しさん
2014/01/01(水) 11:05:27.210245デフォルトの名無しさん
2014/01/01(水) 11:14:09.31イマイチ分からん喩えだ
0246デフォルトの名無しさん
2014/01/01(水) 15:55:21.360247デフォルトの名無しさん
2014/01/01(水) 21:19:48.540248デフォルトの名無しさん
2014/01/01(水) 22:12:24.470249デフォルトの名無しさん
2014/01/01(水) 22:30:18.730250デフォルトの名無しさん
2014/01/01(水) 22:57:29.150251デフォルトの名無しさん
2014/01/01(水) 23:04:04.570252デフォルトの名無しさん
2014/01/01(水) 23:07:46.750253デフォルトの名無しさん
2014/01/01(水) 23:14:25.56わかった上で遊んでるのか?
0254デフォルトの名無しさん
2014/01/01(水) 23:15:44.590255デフォルトの名無しさん
2014/01/01(水) 23:31:52.92まぁglBeginは気が利いてるといえば利いてるな
ただ過保護すぎて本人のためにならないという点が問題だが
0256デフォルトの名無しさん
2014/01/02(木) 10:29:54.180257デフォルトの名無しさん
2014/01/05(日) 14:00:27.53使わなくてもいい
0258デフォルトの名無しさん
2014/01/05(日) 17:35:13.66シェーダーって常にVSとFS(場合によってはGS)を一つずつセットにしないといけないのかな?
頂点シェーダーには透視変換とかの「多くのシェーダーで共通に使う機能」があるから、それをまとめて
VS1(共通機能)→VS2(シェーダーごとの機能)→FS(同左)みたいなやり方ができると
便利そうでVRAMの節約にもなる気がするんだが、それって可能?
0259デフォルトの名無しさん
2014/01/05(日) 17:47:29.97https://www.opengl.org/sdk/docs/man/xhtml/glAttachShader.xml
> It is permissible to attach multiple shader objects of the same type because each may contain a portion of the complete shader.
> It is also permissible to attach a shader object to more than one program object.
0260デフォルトの名無しさん
2014/01/05(日) 20:57:39.61あ、まず仕様書に目を通すべきだったか。
いずれにせよサンクス。
ちょっと読んでみる。
0261デフォルトの名無しさん
2014/01/07(火) 03:24:02.54VRAMの節約にはならんけど, 開発は楽になる。
Boost::waveにあるサンプルを参考にすれば簡単にGLSLで#includeできるよ。
#lineも生成してくれるから、エラーメッセージの行数もちゃんとマッチするし。
>>259
仕様書だとひとつのProgram Objectに複数のVertex ShaderをAttachするのはOKと言ってるけど
複数Vertex Shader Objectを一つのProgram ObjectにAttachしたとして
あるShader Objectから別のShader Objectの関数って呼べるの?
こんな事いったら仕様書をちゃんと読めよ!って言われるかもしんないけどさ。
0262デフォルトの名無しさん
2014/01/07(火) 03:56:16.87やってみたら呼べた。(知らなかった...)
ProgramObjectごとにリンクされるわけだから、メモリの節約にはならないかもしれないけど便利かも
0263デフォルトの名無しさん
2014/01/07(火) 13:13:13.380264デフォルトの名無しさん
2014/01/07(火) 14:25:56.670265デフォルトの名無しさん
2014/01/13(月) 12:33:13.53オブジェクトは3Dで作るがマップは2Dって時
いいマップエディタとかってありますか
加速パネルとか障害パネルとかそんなんを配置していくイメージです
0266デフォルトの名無しさん
2014/01/13(月) 12:42:47.610267デフォルトの名無しさん
2014/01/13(月) 12:52:57.40OpenGLとの関わりが全く分からん
ゲ製板の範疇じゃないのか?
http://toro.2ch.net/gamedev/
0268デフォルトの名無しさん
2014/01/14(火) 03:01:24.710269デフォルトの名無しさん
2014/01/15(水) 17:16:22.88sprite.init(リソース)
...
sprite.draw(gl)
で表示させてたんですが、2枚目を読み込ませると
それまで読み込んでいた別のスプライトもすべて同じ画像になっちゃいました
もしかしてglGentexturesには最初の段階で必要なテクスチャ画像をすべて
読み込まないといけないのでしょうか
だとすると内部でglGenTexturesを使うようなクラス化は無理ですか?
0270デフォルトの名無しさん
2014/01/15(水) 17:50:15.79まずクラス化しないで複数のテクスチャを使えるコードをベタに書いてみたら
0271デフォルトの名無しさん
2014/01/15(水) 18:03:12.270272269
2014/01/15(水) 20:32:30.48glbindtexturesをinit時にしか呼び出してなかったのが原因でした
ただ、javaだとdraw時に毎回glBindTexturesを呼び出すために
bitmap.recycle()できないのが微妙な感じです
0273デフォルトの名無しさん
2014/01/15(水) 22:45:42.92いやtexImage2D()後ならrecycle()は呼び出して大丈夫
glBindTexture()って言ってるけど、その役割理解できてる?
0274デフォルトの名無しさん
2014/01/16(木) 18:10:18.51透過します・・・。
光を遮断するにはどうしたらいいのでしょうか?
0275269
2014/01/16(木) 18:13:33.96codepad.org/IeMlc0OZ
recycleをコメントアウトすると真っ暗です
一枚だけなら、drawでtexImage2Dを呼ぶなんてことはせずにすむのですが。
後試したこととしてinitでtexImage2Dしといて
drawでglBindTextureだけしても動きませんでした
0276デフォルトの名無しさん
2014/01/16(木) 18:45:06.25影を出す方法は幾つもあるけど一長一短。「OpenGL 影」でググって好きな方法を選べ。
0277274
2014/01/16(木) 19:31:36.45レスありがとうございます。
>OpenGLのポリゴンに光(ライト)を遮蔽する効果なんて無いよ……
マジっすか・・・。
仕方ないので、光源の影響を受けるポリゴンを描画してから、
光源をOFFにして、その他のポリゴンを描画することにします。
0278デフォルトの名無しさん
2014/01/16(木) 20:04:51.110279デフォルトの名無しさん
2014/01/16(木) 20:31:10.04根本的に何か勘違いしてる気がする
0280デフォルトの名無しさん
2014/01/16(木) 22:39:28.71後者の試したときに、初期化時のglBindTexture()は読んだのかい?
もう一度問う。glBindTexture()とは何をする関数か。
それによって、他のどんな関数が影響を受けるか。
0281デフォルトの名無しさん
2014/01/16(木) 23:20:26.83モデルビュー関係がシェーダー任せになると、クラス分けが今ひとつ変な感じになる…
とりあえず質感を決定するためにMaterialというクラスを作って、シェーダーはそっちが担当し、
頂点情報はVAOというクラスを作ってそっちにもたせることにした。
そうすると、描画する時は
material.bind(); // 質感を決める
vao.draw(); // そのシェーダーを使って描画する
という流れになる。これは直感的に問題ない。
でも、行列操作のためにはシェーダーのuniform変数を操作する必要があるわけで、
座標を司る行列関係のメソッドがMaterialの方に存在するという、ものすごく気持ち悪い実装になってしまった。
0282デフォルトの名無しさん
2014/01/16(木) 23:28:26.360283デフォルトの名無しさん
2014/01/16(木) 23:29:37.010284デフォルトの名無しさん
2014/01/17(金) 00:52:03.70気がするが、目的の効果を出せるなら取りあえずそれでOKという考え方もあるし
0285274
2014/01/17(金) 01:02:31.26真っ暗な空間の中に、電球が一つあったとして、
その電球を何かですっぽり覆ったときに、影を
描画するのではなく、単に光の影響を排除した
方が簡単だと思ったのですが・・・。
0286デフォルトの名無しさん
2014/01/17(金) 03:46:13.04標準的なライト計算でやってるのは、面の向きとライトとの位置関係を比べて
・面がライトと逆方向を向いてるなら、暗く(ambient)
・面が光をほどよく反射する方向を向いてるなら、色付いて(diffuse)
・面がライトの方向を向いてるなら、白っぽく(specular)
描画する、というだけだよ。当然、他の物体が間にあるかどうかなんて無関係。
光の影響を「すっぽり」排除するなら、>>277 のやり方で問題ないよ。
0287デフォルトの名無しさん
2014/01/17(金) 03:49:21.51暗くなる物体が予め決まってるなら、その物体の材質のdiffuseやspecularを暗くしてやるって手もあるし。
0288デフォルトの名無しさん
2014/01/17(金) 04:36:42.42俺ならこうした
Mesh
- VertexBuffer
- Appearance
- Shader
- Material
0289274
2014/01/17(金) 10:40:42.01あざーす。
最近やっとOpenGLが何をやってるか、うっすら分かってきた。
何となくだけど、
1. 視線に応じてポリゴンのカタチを面に投影
2. 投影された外形の中を指定色で塗りつぶし
3. 2.の輝度調整や、alpha処理等々
これを視野に入るポリゴン全てに対して処理して出来上がった
画像を表示してると・・・。
いままでネットにあるチュートリアルしかみてなかったけど
今度、真面目にOpenGLの本を読んでみようかなw
>>287
むしろ完全に真っ暗が望ましいです。
もし淡い光が必要なら、全体に作用する環境光を使いたいと思います。
0290デフォルトの名無しさん
2014/01/17(金) 14:14:48.930291デフォルトの名無しさん
2014/01/17(金) 16:14:22.56glBindTextureで切り替えられるのは
glGenTextureの第一引数に2以上を指定した場合ではないのですか?
だから最初の質問をしたんだけど
glGenTextureの第一引数に1を指定したまま
切り替えられるようなクラス化が出きるなら教えて
275のコードは遅すぎてまるで使い物になりません
0292デフォルトの名無しさん
2014/01/17(金) 16:46:29.44displaylistを作りなおすのが面倒なんで・・・。
状況に応じてスポットライトはOFFにして環境光だけにして
暗視ゴーグルをつけている雰囲気を出したいなと・・・。
0293291
2014/01/17(金) 17:16:39.28codepad.org/wyLfvqZs
しかしこれは当初自分がやりたかった実装ではないですが
glGenTexture(1,hoge)で作るのは無理だと思うので
実用上これで使うことにします
すごく使いにくいAPIですね
0294デフォルトの名無しさん
2014/01/17(金) 18:53:29.950295デフォルトの名無しさん
2014/01/17(金) 19:22:43.62glBindTexture()の使い方はだいたいok
けどglGenTexture()についてはまだ理解が浅いのかな?
必ずしも一発で全部Genしなくてもいいよ?
まあ、したほうが効率的だろうけどさ
0296デフォルトの名無しさん
2014/01/17(金) 22:50:45.09「なんだこの使いにくいAPIは!」というのは、誰もが過去に通った道という気がするので
正直俺は彼を馬鹿にできん
0297デフォルトの名無しさん
2014/01/18(土) 00:29:31.840298デフォルトの名無しさん
2014/01/18(土) 01:08:55.620299デフォルトの名無しさん
2014/01/18(土) 01:46:21.960300デフォルトの名無しさん
2014/01/18(土) 02:16:05.220301デフォルトの名無しさん
2014/01/18(土) 10:56:56.77ローレベルだから使い辛いとは限らん
0302デフォルトの名無しさん
2014/01/19(日) 09:51:45.48↓
できたー OpenGLの理解は完璧だお!楽勝だお!
↓
中身をど忘れ
↓
振り出しに戻る
0303デフォルトの名無しさん
2014/01/19(日) 18:47:46.890304デフォルトの名無しさん
2014/01/19(日) 20:56:23.550305デフォルトの名無しさん
2014/01/19(日) 21:07:49.68お前は1年前に書いたコードを完全に覚えているのか?
0306デフォルトの名無しさん
2014/01/19(日) 21:08:11.270307デフォルトの名無しさん
2014/01/19(日) 21:12:14.43インターフェイスは見たら思い出せるようにしておく
それだけ
0308デフォルトの名無しさん
2014/01/19(日) 21:42:48.5220台の時は余裕で覚えていたよ
>>307
30台の時はそれでなんとかなってたが
40台になるとそれも難しくなってくるよ
0309デフォルトの名無しさん
2014/01/19(日) 21:43:58.09台
↓
代
くそIMEめ
0310デフォルトの名無しさん
2014/01/19(日) 21:45:22.940311デフォルトの名無しさん
2014/01/19(日) 22:13:14.510312デフォルトの名無しさん
2014/01/19(日) 23:22:42.50特に、1282はもうちょい細かく分割できないもんかと。
0313デフォルトの名無しさん
2014/01/23(木) 23:58:55.130314デフォルトの名無しさん
2014/01/24(金) 00:22:46.650315デフォルトの名無しさん
2014/01/24(金) 16:07:02.92どのタイミングで処理するのがいいのでしょうか
sjbaker.org/steve/omniv/projection_abuse.html
ここによるとgl_projectionを設定しているときには
ライトの設定はしないほうがよさげです
するとmodelviewを設定しているときに呼ぶと思うのですが
カメラの設定で視線が決まると思うので
カメラの設定の後でしょうか?
今プレイヤーの真上(Z>0)からライトを設定してみたものの
むしろ暗くなってしまってます
0316デフォルトの名無しさん
2014/01/25(土) 12:58:01.41昔作ったソースを確認してみた。
gluLookAtでカメラパラメータを決めた後で、頂点の描画処理をする前にライトの設定してる。
スクリーン座標系をS、透視行列をP、ビュー行列をV、ワールド座標系をWとすると、
S=PVW
となるよね。
だから、行列Vをかける前にライトの座標を決めてしまうと、それはワールド座標系ではなく
視点座標系で指定してることになっちゃうと思う。
0317デフォルトの名無しさん
2014/01/25(土) 18:04:10.19頻繁にLightのEnable/Disableを切り替えるのとどちらがコストが
高いのでしょうか?
0318デフォルトの名無しさん
2014/01/25(土) 18:13:41.52なんで旧世代の遺物で無駄な苦労をわざわざするのか理解できない。
0319デフォルトの名無しさん
2014/01/25(土) 18:31:48.96ありがとう、そうします
>>318
いつでも最新のopenglが使える環境ばかりだと思うなよこのダボが
0320デフォルトの名無しさん
2014/01/25(土) 18:56:55.66そういう場合はまず自分で測ってみるといいよ。
0321デフォルトの名無しさん
2014/01/25(土) 19:00:34.83カメラのナナメ後ろから物体に向けて当てるくらいの気持ちでおkだよ。
ちなみに「むしろ暗くなる」のは正しい動作だと思う。
ライト計算ってのは、ほぼ
「ライトが当たってる以外の部分を暗くする」
処理だと考えていい。
例えばdiffuse色の計算では、0〜1の値を何度も掛け算する。
指定したdiffuse色が出るのは一番明るくなったときだけなんよ。
まあここにambientやspecular計算(これも0〜1の掛け算)したものが「足し算」されるから
その塩梅によってはdiffuseより明るくなることもあるけどさ。
だから「ほぼ」なんだけれども…感覚的には、やっぱそれぞれ最大値を指定してる感じになるよ。
この辺の計算を知る意味で、固定機能を使う人でもシェーダーは勉強になるよ。
機会があったら、やってみ?
0322デフォルトの名無しさん
2014/01/25(土) 19:01:24.32環境気にする奴が、実測しないで他の人に聞くことは滑稽だとは思わんかね
0323デフォルトの名無しさん
2014/01/25(土) 19:21:55.58ライトに必要になるシェーダなんて最新なんてほど遠いんだが。
いったい何をターゲットに開発しているんだ?
0324デフォルトの名無しさん
2014/01/25(土) 19:24:42.36自分で測定するなんて面倒だし、新しい知識を勉強するなんてとんでもない。
お前らはただ聞いたことに答えていればいいんだよこのダボが。
0325デフォルトの名無しさん
2014/01/25(土) 19:56:10.570326デフォルトの名無しさん
2014/01/25(土) 20:14:30.4110年くらい前の話じゃないの
0327デフォルトの名無しさん
2014/01/25(土) 20:24:05.730328317
2014/01/25(土) 20:54:17.02シェーダーを調べてきたが、よく分からんかった。
光源の位置は今までどおりOpenGL側で設定する必要があるようだし、
どのポリゴンにどの光源の影響を与えるかの制御をシェーダーで
出来るようには見えなかったんだけど・・・可能なの?
とりあえずアタリを付けようと聞いてみたけど、自分で測ってみるわ・・・。
0329デフォルトの名無しさん
2014/01/25(土) 21:06:57.04いったい何を調べたんだ?
0330デフォルトの名無しさん
2014/01/25(土) 21:11:56.23自分で測定するなんて面倒だし、新しい知識を勉強するなんてとんでもない。
お前らはただ聞いたことに答えていればいいんだよこのダボが。
ほら、譲歩してちょっと流し読みして調べてきてやったよ。
はぁ?まともに読む気なんかねえよこのダボが。
0331デフォルトの名無しさん
2014/01/25(土) 21:14:40.610332317
2014/01/25(土) 21:18:38.99言い方が悪かったわ・・・。
シェーダーはCPU側のメモリにアクセスできないでしょ?
(OpenGLに入力された情報以外使えないでしょ?)
0333デフォルトの名無しさん
2014/01/25(土) 21:21:14.070334デフォルトの名無しさん
2014/01/25(土) 21:25:42.04なんかなぁ・・・
0335デフォルトの名無しさん
2014/01/25(土) 21:28:59.84正) とりあえずアタリを「付けてもらおうと」聞いてみたけど
0336デフォルトの名無しさん
2014/01/25(土) 22:03:17.77怠け者にもほどがあるだろう。
0337デフォルトの名無しさん
2014/01/25(土) 23:37:15.43バーテックスシェーダからは法線ベクトルや頂点位置などのライティング計算に必要な情報を
フラグメントシェーダに渡す。
フラグメントシェーダでライティングを計算してピクセルの色を出力。
これが一番簡単なシェーダでライティングする方法かな
0338デフォルトの名無しさん
2014/01/25(土) 23:45:31.08それが基本だろうね。
俺はmat4にライト情報を格納して、その配列としてuniform変数を渡してる。
ただ、現状だと座標、Diffuse、Specular、Ambientで埋まってしまうので、
それ以外の情報を込めようとすると別の変数が必要になる。
ただ、光源側に光源側に各反射に対応したパラメーターを設定したのは2.xまでのOpenGLの仕様が
そうなっていたからそれをなぞっただけで、あんまり意味がない。
考えてみると、そんな反射ごとの光源強度が必要になる状況ってあんまりないから、
「座標」と「光源の強さ」の2列にまとめちゃっていいかなと思ってる。
そうすると残り2列あるから、いろんなパラメーターを持たせられるし。
0339デフォルトの名無しさん
2014/01/26(日) 00:20:21.11ttp://toro.2ch.net/test/read.cgi/gamedev/1389441602/
0340デフォルトの名無しさん
2014/01/26(日) 09:42:10.54複数のシェーダで共有するから、ファイルは分けて、ね。
0341デフォルトの名無しさん
2014/01/26(日) 14:26:00.470342デフォルトの名無しさん
2014/01/26(日) 14:30:34.110343デフォルトの名無しさん
2014/01/27(月) 22:19:58.720344デフォルトの名無しさん
2014/01/27(月) 22:33:53.26そういうのはまだ求めていないと思う
0345デフォルトの名無しさん
2014/01/27(月) 23:35:28.660346デフォルトの名無しさん
2014/01/28(火) 00:15:26.550347デフォルトの名無しさん
2014/01/28(火) 02:32:13.490348デフォルトの名無しさん
2014/01/28(火) 02:35:03.000349デフォルトの名無しさん
2014/01/29(水) 01:17:31.59環境マッピングとかやろうとするとけっこう面倒だけど。
0350デフォルトの名無しさん
2014/02/10(月) 00:11:06.19「1>glfw3.lib(gamma.obj) : error LNK2019: 未解決の外部シンボル __libm_sse2_pow_precise が関数 _glfwSetGamma で参照されました。」
とエラーになってしまいます
どうすればいいか教えてください
環境はWindows, VC++2010です
#include <glfw3.h>
#pragma comment(lib, "glfw3.lib")
#pragma comment(lib, "opengl32.lib")
int main(int argc, char *argv[])
{
GLFWwindow *window;
if(glfwInit() == GL_FALSE) {
return 0;
}
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if(window == NULL) {
glfwTerminate();
return 0;
}
glfwMakeContextCurrent(window);
while(glfwWindowShouldClose(window) == 0) {
// 描画コード追加
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
0351デフォルトの名無しさん
2014/02/10(月) 00:20:54.19そのエラーだとコードを書いても答えられない気がするが。
ライブラリにちゃんとパスが通ってるかとか、そっちの問題に見える。
0352デフォルトの名無しさん
2014/02/10(月) 00:32:27.100353デフォルトの名無しさん
2014/02/10(月) 01:02:46.31ありがとうございます
ソースの方もDLして見てみたんですが
glfwSetGammaでlibm_sse2_pow_preciseは使用されていませんでした
検索もヒットせずです
0354デフォルトの名無しさん
2014/02/10(月) 02:06:01.742010ではソースからビルドしないといけないみたいです
見落としてましたすみません
0355デフォルトの名無しさん
2014/02/12(水) 13:18:18.360356デフォルトの名無しさん
2014/02/12(水) 16:47:48.69glfw3.libを生成する時にリンクされたgamma.objの機能(glfwSetGamma)で使用されている
シンボル __libm_sse2_pow_preciseが未解決って意味だ
リンクできてなかったらglfwSetGammaが未解決になるだろバカか?
0357デフォルトの名無しさん
2014/02/13(木) 00:36:21.790358デフォルトの名無しさん
2014/02/13(木) 02:49:56.24Direct3D9では三角形リストで四角形の画像も表示していました。
OpenGLのインデックスバッファ(VBO?)には四角形(QUAD)もあるのですが、
どちらを使うほうが効率的でしょうか?
内部では全部三角形リストで処理しているから、そっちのほうが
良いのかなと推測してはいるのですが、教えてください。
0359デフォルトの名無しさん
2014/02/13(木) 04:42:01.068角形とか4角形以外の図形が1つでも混ざる場合は全部3角形の組み合わせで
表現したほうが良いけど、四角形以外は絶対使用しない基本的な2Dアプリだと
4角形が良いみたい。
0360デフォルトの名無しさん
2014/02/13(木) 09:10:22.26八角形と四角形を同一視している理由が判らん。
0361デフォルトの名無しさん
2014/02/13(木) 11:30:36.37凸凹←彼の中での八角形。
0362デフォルトの名無しさん
2014/02/13(木) 11:31:41.380363デフォルトの名無しさん
2014/02/13(木) 11:47:52.020364デフォルトの名無しさん
2014/02/13(木) 11:55:36.01おじいちゃん、今時は「〜とか〜」は必ずしも「〜や〜」を表わさないんですよ。
寧ろ「〜など、〜」の意味で使う若い人が多いんですからね。
>>359
このように齟齬が発生するからせめて読点で区切ってくれ。
0365デフォルトの名無しさん
2014/02/13(木) 13:18:28.640366デフォルトの名無しさん
2014/02/13(木) 22:28:49.31たぶんこんな感じかなと思ったのですが、上手くいきません。教えてください。
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_BLEND);
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_SOURCE0_RGB, GL13.GL_TEXTURE0);
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_OPERAND0_RGB, GL11.GL_SRC_COLOR); // dirt texture colors
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_SOURCE0_RGB, GL13.GL_PRIMARY_COLOR);
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_OPERAND0_RGB, GL11.GL_ONE_MINUS_SRC_COLOR); // use vertex alpha to interpolate
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_SOURCE0_ALPHA, GL13.GL_TEXTURE0 );
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_OPERAND0_ALPHA, GL11.GL_SRC_ALPHA); // this texture's alpha (stage 0)
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_SOURCE0_ALPHA, GL13.GL_PRIMARY_COLOR);
GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL13.GL_OPERAND0_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); // vertex alpha
0367デフォルトの名無しさん
2014/02/14(金) 17:01:49.270368デフォルトの名無しさん
2014/02/14(金) 17:09:53.140369デフォルトの名無しさん
2014/02/14(金) 21:25:26.72って思ってたらuniformやサブルーチンもできるようになってるんだな
ttp://www.opengl.org/wiki/Layout_Qualifier_%28GLSL%29
しかし4.3か・・・
ハードの機能じゃないっぽいし、Intelでも使えたら良いんだが
0370デフォルトの名無しさん
2014/02/16(日) 08:42:38.59なんかサンプルがバグバグなんだが、これはサンプルの問題なのかライブラリの問題なのか
0371デフォルトの名無しさん
2014/02/16(日) 22:00:01.210372デフォルトの名無しさん
2014/02/16(日) 22:15:17.13見てみると範囲外アクセスなんだがそれを直すと今度は無限ループっぽい症状が出る、直せん
0373デフォルトの名無しさん
2014/02/16(日) 22:38:03.760374デフォルトの名無しさん
2014/02/16(日) 22:52:30.60だから小手先の修正では根本的な修正にならないと言う話
これがテキストボックスだけなのか、全体的にそうなのかもし経験してる人がいれば聞きたかった
0375デフォルトの名無しさん
2014/02/16(日) 22:56:34.13ハングするならその状態で止まるだろうし元を辿れるだろ
0376デフォルトの名無しさん
2014/02/16(日) 23:02:44.72時間かけて見てるわけじゃないからそれ以上はなんとも
0377デフォルトの名無しさん
2014/02/17(月) 08:50:42.970378デフォルトの名無しさん
2014/02/19(水) 16:46:19.580379デフォルトの名無しさん
2014/02/19(水) 17:03:21.02これを読めばわかると思うよ。
http://www.opengl.org/registry/doc/glspec44.core.pdf
0380デフォルトの名無しさん
2014/02/19(水) 18:01:28.25「OpenGLで読み込めるスキメッシュアニメのファイル」なんてのは存在しないよ。
OpenGLはただのグラフィックライブラリだから特定のモデルファイルを読み込む機能は
存在しないし、もちろんそれらのデータを適切に扱ってスキニングさせるヘルパー関数なんてのもない。
自分でパースするかそういうライブラリを使って読み込まないと無理。
逆に自分でパースしてデータ取り出して使うならデータ形式わかってるファイルならなんでもいける
0381デフォルトの名無しさん
2014/02/19(水) 19:51:13.58とっくに死んだ?
0382デフォルトの名無しさん
2014/02/19(水) 20:28:45.23モデラからのスキニングデータの吐き出しに使ってたけどクソフォーマットすぎ
0383デフォルトの名無しさん
2014/02/19(水) 20:53:15.00それを自分で読み込めばいいだけの話。
必要な情報が必要なときに必要なだけ使える。
0384デフォルトの名無しさん
2014/02/19(水) 21:19:47.010385デフォルトの名無しさん
2014/02/20(木) 08:41:03.850386デフォルトの名無しさん
2014/02/20(木) 18:02:50.170387デフォルトの名無しさん
2014/02/20(木) 22:12:04.850388デフォルトの名無しさん
2014/02/20(木) 23:07:28.17使ってるモデラのプラグインの仕様を読んで作り方を調べろ
エクスポートプラグインの話とかになるとOpenGL関係ないからそのソフトのスレでどうぞ
0389デフォルトの名無しさん
2014/02/21(金) 13:33:03.03Androidだとコンテキストロストってのがあるらしいけど。
0390デフォルトの名無しさん
2014/02/22(土) 01:09:58.87JOGL経由で使ってると、ウィンドウのサイズ変更でデバイスロストしたりするよ。
その後の初期化は自動でやってくれるけど、もちろんVRAMは破壊されてるんで
VAOとかテクスチャは登録しなおしになる。
0391デフォルトの名無しさん
2014/02/22(土) 12:15:07.36c++で書くのやめろや
0392デフォルトの名無しさん
2014/02/22(土) 18:54:14.01http://code4k.blogspot.jp/2010/08/import-and-export-3d-collada-files-with.html
0393デフォルトの名無しさん
2014/02/25(火) 13:42:13.63gluiとんでもない地雷や
そもそもがウィンドウ閉じたらプログラム終わりでしょって言うglut思想ベースなの持っ手伝ってか
仮想デストラクタなし継承
newするがdeleteしない
こんなのが当たり前
ファイル数が少ないからメンテしようと思えば
見た目のnodeシステムはフェイク、実際は包含される方のnodeを使って管理する
一部元のnodeも使ってるので二重管理、deleteが組み込めない
識別子として使われてる名前メンバーがgui表示名としても使われている
逆にこんなの公開出来る神経がすごいわ
0394デフォルトの名無しさん
2014/02/25(火) 15:04:23.780395デフォルトの名無しさん
2014/02/25(火) 21:26:49.89今の状況なら別に問題ないんじゃないか?
0396デフォルトの名無しさん
2014/02/25(火) 21:39:51.89openglと親和性のいいGUIライブラリって何があるかね?
windowsとmacで開発できてライセンスがLGPL程度に軽いヤツで
AntTweakは見たが見た目がいかにもでちょっと敬遠
wxWidgetが良さそうだがどうなんだろ
0397デフォルトの名無しさん
2014/02/25(火) 22:00:37.830398デフォルトの名無しさん
2014/02/25(火) 22:02:21.330399デフォルトの名無しさん
2014/02/25(火) 22:10:55.42wxWidgetが良さそうだと感じるなら、使ってみたらいいと思うが
躊躇する理由は?
親和性なんてものはごく曖昧な指標で、感じ方は人によって違うんだから、
まずは使ってみて、どこか不満があればそれを具体的に挙げて、
それを改善できるGUIライブラリがないか質問すればいいんじゃね?
0400デフォルトの名無しさん
2014/02/25(火) 22:15:30.07別に躊躇はしてない
アーキテクチャがOSラッパというところに魅力を感じた
サンプルは意外と膨大でコードはぱっと見ではよくわからん感じ
openglのサンプルが少ないのが不安
>>398
おーしらなんだ
これは良さそうだ
>>397
Qtはライセンスどこまでがライブラリどこまでだかわからんから敬遠する
0401デフォルトの名無しさん
2014/02/25(火) 22:31:00.61Qt?
0402デフォルトの名無しさん
2014/02/25(火) 22:32:25.89そもそもQt自体弄ることなんて無いし。
0403デフォルトの名無しさん
2014/02/25(火) 22:56:01.870404デフォルトの名無しさん
2014/02/25(火) 23:34:32.03よさそう
皆ありがとう
0405デフォルトの名無しさん
2014/02/26(水) 08:45:03.420406デフォルトの名無しさん
2014/02/26(水) 09:13:58.84GTKは糞
0407デフォルトの名無しさん
2014/02/26(水) 10:05:23.740408デフォルトの名無しさん
2014/02/28(金) 19:01:52.03グラフィックカードが対応してない?
GeForceのGTM350とかなんだけど
0409408
2014/02/28(金) 19:02:41.74デスクトップPCだと普通に表示されます
0410デフォルトの名無しさん
2014/02/28(金) 19:49:55.640411デフォルトの名無しさん
2014/02/28(金) 20:17:12.160412408
2014/03/01(土) 17:59:35.89ってことはあのサイトのソースと環境設定がおかしかったのか?
グラボのせいではなかったようです。お騒がせしました。
freeglutのハッキリした文法をちゃんと解説しているサイトってないですかね?
0413デフォルトの名無しさん
2014/03/01(土) 18:02:58.090414デフォルトの名無しさん
2014/03/01(土) 18:03:28.40あのサイトと別のサイト貼ったらどこがおかしかったか教えてもらえるんじゃね
0415デフォルトの名無しさん
2014/03/01(土) 18:14:04.920416デフォルトの名無しさん
2014/03/01(土) 18:17:56.00ちゃんとかけたサイト
うねうねサイトは忘れましたが、ドーナツモデルを表示するだけのサンプルでした
0417デフォルトの名無しさん
2014/03/01(土) 18:27:02.29ちゃんと最終的な音やボタン入力まで実装したサイトってないですね。
しかも、結局、glutはダメとか抜かしてるし・・・・
DirectXに比べてどうとっかかっていいのか、信じていいのかわかりません
0418デフォルトの名無しさん
2014/03/01(土) 18:39:42.400419デフォルトの名無しさん
2014/03/01(土) 18:47:40.84ああ、そうでした。実行OSのサウンド、入力環境は別に組み込むんですよね。
いわゆる、OpenGLで売るゲームとかを作りたい場合、glutでなく、どうやって作ればいいのでしょうか?
0420デフォルトの名無しさん
2014/03/01(土) 18:48:17.610421デフォルトの名無しさん
2014/03/01(土) 18:49:37.020422デフォルトの名無しさん
2014/03/01(土) 18:51:43.120423デフォルトの名無しさん
2014/03/01(土) 18:57:16.630424デフォルトの名無しさん
2014/03/01(土) 19:06:51.91http://msdn.microsoft.com/en-us/library/windows/desktop/ee872084(v=vs.85).aspx
PixelFormatを決めてHDCに対応するOpenGLコンテキストを作ったら
wglMakeCurrentしてあとはふつうにOpenGLで描く。
0425デフォルトの名無しさん
2014/03/01(土) 19:09:33.86他OSに移植予定があるならコンテキストデバイス部分だけ自分で作ってあとはそれを隠蔽しつつ
openglでちまちま作る
0426デフォルトの名無しさん
2014/03/01(土) 20:15:21.98ゲームだったらSDLとかでもいいんでね?
>>425が言うようにWindowsで動きゃいいなら悪いこと言わないからDirectX使えばいいと思うよ
0427デフォルトの名無しさん
2014/03/02(日) 10:17:53.34普通のOpenGLの関数の書き方ってどこに載っているのでしょうか・・・・? どこもglutの関数ばっかで・・・。
>>426
GLFW調べてみましたが、こっちの方がゲーム向きみたいですね。
0428デフォルトの名無しさん
2014/03/02(日) 10:30:13.76http://www.opengl.org/
ぶっちゃけこれくらい自分で調べられないようならゲーム作成なんて絶対不可能なので諦めたほうが良い
0429デフォルトの名無しさん
2014/03/02(日) 10:40:07.540430デフォルトの名無しさん
2014/03/02(日) 10:59:03.660431デフォルトの名無しさん
2014/03/02(日) 11:00:23.20mmdagentがオープンソースでGLFW使ってるから見てみたらいいかも
0432デフォルトの名無しさん
2014/03/02(日) 11:05:57.66なにこれすごい・・・・ありがとうございます。
0433デフォルトの名無しさん
2014/03/02(日) 13:26:00.29不義理したのか
0434デフォルトの名無しさん
2014/03/02(日) 14:21:57.07ああ・・・間違った日本語でしたね。ハードル高すぎワロタ
0435デフォルトの名無しさん
2014/03/02(日) 17:03:10.56http://www.opengl.org/registry/doc/glspec44.core.pdf
0436デフォルトの名無しさん
2014/03/02(日) 17:41:25.70かぶる値が戻ってくるんだが
これはドライバのバグかね?
GPUはFirePro系。
glGenBuffersはちゃんと空き番号が帰ってくるんだが・・・。
さて困った。
0437デフォルトの名無しさん
2014/03/02(日) 17:43:03.38ソースを上げたら、誰かが検証してくれるかもしれん
お前さんのところの環境のせいか、それとも書き方が悪いか
0438デフォルトの名無しさん
2014/03/02(日) 17:59:28.11おお、早いレスありがとう。
ただ、ソースと言っても該当部分に何かできる余地もないと思うのだが・・・。
↓これの2行目のvaoに既存の値が入る。
uint vao;
GL.GenVertexArrays(1, out vao);
GL.BindVertexArray(vao);
GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
環境はラッパとしてOpenTKを使いC#で制作中。
OS:Win8.1、GPU:FireProW5000、VS2010
オブジェクト内の描画用初期化コードの一部として上記の記述があり。
アプリ起動時にオブジェクトを生成する際はvaoに重複が発生しない。
アプリ起動後、動的にnewしたオブジェクトのみ重複する。
ただしその場合もvboやらiboやらは重複した値が帰ってくることはない。
GL1.1時代から触っていますが
gen系が重複した経験は記憶にないなぁ・・・と。
0439デフォルトの名無しさん
2014/03/02(日) 19:19:26.78ドライバのバグかどうか他の人の環境で検証することができない。
0440デフォルトの名無しさん
2014/03/02(日) 19:26:35.00どうせ言った本人は見る気ないだろうし。
0441デフォルトの名無しさん
2014/03/02(日) 19:26:56.500442デフォルトの名無しさん
2014/03/02(日) 19:27:56.59でも上げたほうが解決しやすいのは事実だし、上げたくなきゃ上げなくてもいいんじゃないかな
0443デフォルトの名無しさん
2014/03/02(日) 20:12:09.910444デフォルトの名無しさん
2014/03/02(日) 20:26:28.69上げろなんて言ってないし、上げて欲しいとも言ってないよ
>>442 の言うとおり、上げないと他の環境で検証できない、という事実を言ってるだけ
0445デフォルトの名無しさん
2014/03/02(日) 20:27:46.54(自分の馬鹿さに気付いた例>>412)
0446デフォルトの名無しさん
2014/03/02(日) 20:41:57.00そうでないならどっかで間違えてるわけで
0447デフォルトの名無しさん
2014/03/02(日) 21:28:28.01いいこと言った。
>>438です。
最小コード使ってる過程で原因の箇所がわかりました。
MakeCurrent()でアクティブなGLControlを切り替えると
GenVertexArraysの既存ステート値がクリアされるようです。
ちょおまっ複数ターゲットどうしろと・・・。
0448デフォルトの名無しさん
2014/03/02(日) 21:39:06.67確認なんだが、MakeCurrent で切り替えて、GenVertexArrays で値が重複して、
それで結局望み通りのレンダリングはされないのか、それでもされているのか、どっち?
0449デフォルトの名無しさん
2014/03/02(日) 21:46:48.59ポリゴンが壊れるな。
別のVBOに対し別のVAOで動くことになるから
当然っちゃ当然だな。
最終的にメモリ外参照して落ちる。
ポリゴンが壊れる場合もたまたま落ちなかっただけだと思われる。
0450デフォルトの名無しさん
2014/03/02(日) 22:36:55.21リセットされてるのか、別々に番号が割り当てられている
(GLControl_Aの1番とGLControl_Bの1番は同じ番号でも別物)
のか、で話が変わると思うけど
0451デフォルトの名無しさん
2014/03/03(月) 00:26:52.530452デフォルトの名無しさん
2014/03/03(月) 00:58:01.38C#で使ったことがないからなんでContextじゃなくてControlって名前してるのか引っかかるが
0453デフォルトの名無しさん
2014/03/03(月) 02:42:00.39駄目ですね・・・。
controlがいくつあろうとGPUは一つなんで関係ないかと思っています。
>>451
>>452
GenBufferは問題なく一意の値が帰ってくるんですよ・・・。
GenVertexArraysだけが臍をまげるのです。
明日会社の環境でテストしてみます。
それでも駄目だったら
VAOを使わない描画かコードの組み方を考えてみます。
みなさんありがとうございました。
0454デフォルトの名無しさん
2014/03/03(月) 05:17:57.05ttp://www.opengl.org/wiki/OpenGL_Context
>Not shareable
> Framebuffer Objects
> Vertex Array Objects
0455デフォルトの名無しさん
2014/03/03(月) 07:55:31.81一意じゃなくても別contextなら問題ないんじゃないの?
0456名前は開発中のものです。
2014/03/03(月) 14:05:41.44ソース見てひたすら考える感じ?
ステップ実行・インスペクト系の処理ができるような環境なり
エミュレータみたいなものがあるの
0457デフォルトの名無しさん
2014/03/03(月) 14:31:16.34http://www.vis.uni-stuttgart.de/glsldevil/
printf が使えるのはGLSLじゃなくてOpenCLだったか
0458デフォルトの名無しさん
2014/03/03(月) 21:38:09.31ニュースレターで見た
0459デフォルトの名無しさん
2014/03/03(月) 22:39:03.61裏のスレッドでVRAMにアップロードするための機能なのかな
0460デフォルトの名無しさん
2014/03/03(月) 22:49:00.970461デフォルトの名無しさん
2014/03/04(火) 01:27:17.61>>455
それだ!
GUI側の操作を受けてnewしている部分で
カレントのcontrolが異なっている可能性のある部分があった。
Thx!
0462デフォルトの名無しさん
2014/03/04(火) 01:53:55.82値を確認したい変数をRGB値に変換してフラグメントシェーダから出力してるよ。
1000x1000の大きさのフレームバッファに出力して数個のピクセルだけ異常があるようなときでも
簡単に調査できるよ。
例えばNaNが発生しているような気がしたら
color = isnan(hoge) ? vec4(1.0) : vec4(0.0);
0463デフォルトの名無しさん
2014/03/04(火) 02:37:13.340464デフォルトの名無しさん
2014/03/09(日) 00:12:59.42どうも視点からの距離じゃなく、z座標を規格化しただけっぽいんだが
0465デフォルトの名無しさん
2014/03/09(日) 09:46:24.60openGLの実装がどうなってるかは知らないけど
たいていは射影変換でnear-farクリップのプレーン間を 0.0-1.0 に変換したあと
Zバッファの深度に応じてスケーリングされる
昔はZバッファって16bitでintとかだったから
与えられたビット幅を可能な限り有効に使うため
あと素人が書く入門サイトとかでは触れてないことが多いけど
実際は射影変換したあとクリッピングボリュームってのが絡んでくるからね
ようは射影変換したあとの可視範囲を(-1.0〜+1.0)におさめて
クリッピングはこれに対して行いましょうってやり方
そのあとビューポートやZバッファの深度に合わせて再度スケールされる
DirectXのリファレンスだとちゃんとこういうの書いてある
0466デフォルトの名無しさん
2014/03/09(日) 09:50:48.210467デフォルトの名無しさん
2014/03/09(日) 12:39:58.790468デフォルトの名無しさん
2014/03/09(日) 13:55:22.97http://wgld.org/d/webgl/w069.html
参考までにどうぞ
ここに書いてあるようなことは頭の隅に置いておけ
0469デフォルトの名無しさん
2014/03/09(日) 14:08:35.850470デフォルトの名無しさん
2014/03/09(日) 14:17:52.810471デフォルトの名無しさん
2014/03/09(日) 14:22:14.710472デフォルトの名無しさん
2014/03/09(日) 19:43:59.46ミルクかかってないぞ
0473デフォルトの名無しさん
2014/03/10(月) 13:52:05.40こんなのは単なる転置なんだから、このシステムでは位置ベクトルは行ベクトルなんだな変換行列は右側から掛けていくんだなって理解してしまえば、
CやJavascriptでのリテラル表記どうり(row major)の行列と解釈できると思うんです。
そういう理解だと、何か不都合があるんでしょうか?
0474デフォルトの名無しさん
2014/03/10(月) 17:07:23.48正解は常に一つじゃない
0475デフォルトの名無しさん
2014/03/10(月) 17:16:16.16同じだと理解できるまでは違うと思っていればいいじゃない
いちいち詳しく説明するのは面倒だし
0476デフォルトの名無しさん
2014/03/10(月) 17:31:16.740477デフォルトの名無しさん
2014/03/11(火) 10:41:20.25一応補足しておくがfloat[]に転置させて渡すのは
数学的な理由じゃないからね
行列xベクトルをSIMDで処理するときにその並びのほうが
処理ステップが少なくて済む(高速化)って理由だから
ためしにMMXやSSE3で書いてみれば転置させて渡したほうが
必要な命令数だいぶ少なくなるって分かる
GPUの演算ユニットだと→方向への加算できるのかもしれないが
そこまでは詳しくないので済まん
0478デフォルトの名無しさん
2014/03/12(水) 03:09:02.47ID:yIAelRYuこの話は順番飛ばすと混乱する。
きちんとわかってて、説明求められたら1から順に説明できるんならいいけど、なんかちょっとあやふやな印象。
まずベクトルと行列の数学上の定義
数ベクトル に対して、次のような連立一次式があったとして、
y0 = a00*x0 + a01*x1 + a02*x2
y1 = a10*x0 + a11*x1 + a12*x2
y2 = a20*x0 + a21*x1 + a22*x2
こいつらを、
|y0| | a00 a01 a02 | |x0|
|y1|= | a10 a11 a12 | |x1|
|y2| | a20 a21 a22 | |x2|
と表したとき、真ん中のa~~が行列で、X=(x0,x1,x2)^T, Y=(y0,y1,y2)^Tが(列)ベクトル。
まぁここまでは今更な話だろうけど。
そして次に、この数学上の行列を「一次元の配列」であるメモリ上でどう表現するか、という純粋にプログラム的な規約の問題として、行優先と列優先がある。
// 行優先パック row*3 + column
matrix[] = { a00, a01, a02, a10, a11, a12, a20, a21, a22 };
// 列優先パック column*3 + row
matrix[] = { a00, a10, a20, a01, a11, a21, a02, a12, a22 }
0479デフォルトの名無しさん
2014/03/12(水) 03:29:03.75ID:yIAelRYuつまり、行優先か列優先かっていうのは、位置ベクトルが列ベクトルとかなんかとは本質的に無関係。
上では列ベクトルとして行列とベクトルの積を、 Y = A X と定義したけど、
行ベクトルとして行列との積を、 Y = X A^T と定義したところで、それとは無関係に行優先パックとか列優先パックの違いがあるわけよ。
普通数学で一般的に使うのは列ベクトルで Y = A X 。当然パック方法なんてない。
OpenGLは列ベクトルの Y = A X で列優先パック。
DirectX(の数学ライブラリ)だと行ベクトルの Y= X A なので、リファレンスなんかに載っている式は、OpenGLや教科書を基準に見ると、転置されている。
でも行優先パックなのでメモリ上の並びはOpenGLと同じ。
こういう違いがあるわけだけど、ホントに単なる転置って理解でいいの?
実装であるところのパッキングの問題を、仕様であるところの行列や位置ベクトルの定義の話にもってちゃっていいの?
0480デフォルトの名無しさん
2014/03/12(水) 18:40:59.53ID:/4Gye9c60481デフォルトの名無しさん
2014/03/12(水) 19:47:45.27ID:gaRf+Hfn0482デフォルトの名無しさん
2014/03/12(水) 20:06:43.73ID:FRDf8EDBベクトルの内積をとるような便利な命令がない前提だと、
>>478の表記で言えば、
y=ai0 * x0 + ai1 * x1 + ai2 * x2という形でベクトルとスカラーの積の和に出来るってところがいいって理解であってる?
0483デフォルトの名無しさん
2014/03/15(土) 17:05:22.93ID:oF+7Lqrpフレームバッファにデプステクスチャをアタッチさせることは出来ますか?
それとも、フレームバッファを自前で用意したほうがいいのでしょうか?
0484デフォルトの名無しさん
2014/03/18(火) 14:00:20.79ID:MzFSA0SPhttps://www.khronos.org/news/press/khronos-releases-opengl-es-3.1-specification
0485デフォルトの名無しさん
2014/03/18(火) 14:11:57.32ID:oMQpjzACGLFWにテクスチャを扱う機能なんてあるの?
0486デフォルトの名無しさん
2014/03/18(火) 14:30:57.47ID:WqrW8ZvK0487483
2014/03/19(水) 15:15:13.25ID:x+vEWRl5それをテクスチャとしてシェーダに渡したいと思ったのです
それができないなら、テクスチャを作ってそれをフレームバッファにデプスバッファとしてアタッチさせようかと
しかし、どっちもできなそうなので自前でフレームバッファを用意することにします
0488デフォルトの名無しさん
2014/03/19(水) 21:27:50.29ID:kQ1IY4eWストリップ連結して1つにするとかやると思うんだけど
このとき挟んだダミー頂点から生成される厚さ0のライン状のポリゴンて
かならずフラグメントが発生しないって仕様で保障されてるの?
環境によってはプチプチピクセルが出現したりすることあるのかな?
(自分のマシンで実験した限りでは発生してないんだが)
0489デフォルトの名無しさん
2014/03/19(水) 22:16:56.63ID:B8wiGESFなんか勘違いしてない?
デプスバッファの内容をテクスチャに書き込めばシェーダに渡そうがフレームバッファに描画しようが好きにできるだろ
GLWFなんも関係ない
0490デフォルトの名無しさん
2014/03/19(水) 22:34:36.36ID:yu8LCYN5縮退ポリゴンの事だと思うけどDDAの仕組みを考えると絶対何も表示されない
つうかそれが前提でないと困るよ
0491483
2014/03/19(水) 23:02:57.47ID:x+vEWRl5glReadPixelで読みこんでもいいのですが、それだとテクスチャを再びGPUに送らなければいけないので
どうせならそのままテクスチャとしてシェーダからアクセスできたらいいなと思いました
そこでGLFWが用意したフレームバッファにアクセスする必要があるのですが、どうも勝手がわからず・・・
0492デフォルトの名無しさん
2014/03/20(木) 01:18:25.37ID:jxMC6q3Wttp://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/
0493デフォルトの名無しさん
2014/03/21(金) 13:34:46.86ID:qPMBZTLx原点(0, 0, 0)から、奥の方(-Z方向)を真っすぐ見ている状況を想定しています。
次のような透視投影を使います。
視野角:60度
アスペクト比:1.0
ニアクリップ:0.0
ファークリップ:100.0
gluPerspective()で設定するとしたら次のような感じです。
gluPerspective(60.0f, 1.0f, 0.0f, 100.0f );
この透視投影行列を使って点(5.0, 5.0, -5.0)を変換すると、
点(7.84843, 7.84843, 5.0)が得られました。
この点の値が意味するところがよく分からないのです。
はたして、この点が画面に表示される(視錐台に収まっている)かどうか、この値から判断がつくものでしょうか?
それはどうやって判断できるものなのでしょうか?
ビューポートのサイズはウィンドウサイズに合わせてあるものとします。
よろしくお願いします。
0494493
2014/03/21(金) 14:14:38.42ID:qPMBZTLx自己解決しました。
0495デフォルトの名無しさん
2014/03/21(金) 17:46:38.14ID:jnzVoV9V0割になる
0496デフォルトの名無しさん
2014/03/21(金) 18:31:54.12ID:QeCe9VPu0497デフォルトの名無しさん
2014/03/21(金) 18:48:13.65ID:nJlJvtIp正射影なら兎も角、透視射影なら問題大ありだ
0498デフォルトの名無しさん
2014/03/21(金) 19:42:17.33ID:5AwbqaOE分母が0にならないからって油断するな
ttp://www.opengl.org/sdk/docs/man2/xhtml/gluPerspective.xml
0499デフォルトの名無しさん
2014/03/21(金) 21:01:49.79ID:W082XsHqXPSP3 32bit
0500499
2014/03/21(金) 21:07:56.20ID:W082XsHq0501デフォルトの名無しさん
2014/03/21(金) 21:44:10.00ID:HFjZE4d5そのやり方後々バグ出る
0502デフォルトの名無しさん
2014/03/21(金) 22:21:15.54ID:QeCe9VPu知らなかったそんなの…
0503デフォルトの名無しさん
2014/03/21(金) 22:22:52.36ID:W082XsHqいろんなサイトや本に書いてるやり方なんだけど・・・・kwsk
0504デフォルトの名無しさん
2014/03/21(金) 23:37:48.63ID:2OBuLZX+0505デフォルトの名無しさん
2014/03/21(金) 23:54:52.34ID:5AwbqaOE0506デフォルトの名無しさん
2014/03/21(金) 23:57:48.38ID:HFjZE4d5dll呼び出す時のソース
0507デフォルトの名無しさん
2014/03/22(土) 00:01:35.09ID:qO9k1Urxその時は遠くのオブジェクトは見えないから精度が劣化してもわからん
0508デフォルトの名無しさん
2014/03/22(土) 00:13:17.68ID:I2olUI8GnearをゼロにしたらZがどんな値でもデプス値が1になって
前後の判定ができなくなるのではないだろうか
0509493
2014/03/22(土) 00:24:34.20ID:di8SnZWV物理的にもおかしいよね
ニアがマイナスになった日にはもう異次元の世界だよね
0510デフォルトの名無しさん
2014/03/22(土) 00:50:42.43ID:qO9k1Urxそれは違うぞ
0511デフォルトの名無しさん
2014/03/22(土) 13:36:45.37ID:di8SnZWVどうもすみませんでした
0512デフォルトの名無しさん
2014/03/22(土) 15:54:44.13ID:Zm8O6+DW自作のPCゲームでGLSLを使いたいと思ってます。
0513デフォルトの名無しさん
2014/03/22(土) 16:15:52.89ID:+XA3shYN0514デフォルトの名無しさん
2014/03/22(土) 16:38:37.11ID:Zm8O6+DWありがとうございます。
PDF版(3千円)を購入しようと思います。
0515デフォルトの名無しさん
2014/03/22(土) 17:29:07.58ID:utEIm5iwnearに0を入れるとなにも表示されなくなる
限りなく0に近い値でもOK
0516デフォルトの名無しさん
2014/03/22(土) 19:44:26.88ID:di8SnZWVnearがマイナスでもそうですね
それはそうと、法線の変換にモデルビュー行列の逆行列の転置行列を使う意味がやっと分かった。
3D計算って奥が深いですね。
0517デフォルトの名無しさん
2014/03/23(日) 10:54:41.43ID:hA0dR83Dインターリーブに出来ないんだっけ?
どっかでサンプル見た記憶があったんだが
0518デフォルトの名無しさん
2014/03/23(日) 10:58:43.08ID:J+Rs1swrおしえて
0519デフォルトの名無しさん
2014/03/23(日) 12:49:01.23ID:hqNhlXg+行列の回転成分を残し、拡大縮小成分の逆数をとるためですよ
0520デフォルトの名無しさん
2014/03/23(日) 13:25:03.38ID:4YJkTOZdhttp://hau.sakura.ne.jp/blog/2010/06/opengl.php
http://d.hatena.ne.jp/h013/20130325/1364229762
ちなみに上のほうで話題になっていた行列のメモリ上の配置の問題とは
分離して考えよう
こちらは純粋に数学的な理由
0521デフォルトの名無しさん
2014/03/23(日) 13:38:01.27ID:4YJkTOZd回転行列の逆行列が転置に等しいってのはここの最初の2つ
0522デフォルトの名無しさん
2014/03/23(日) 13:39:06.80ID:hqNhlXg+最初のブログに書かれている「拡大縮小は法線に関係ない」ってのは間違ってるよね
各軸方向に均等な拡大縮小は関係ないけど、不均等な拡大縮小は法線に影響を与える
むしろ、その不均等な拡大縮小を考慮したがゆえの、「逆行列の転置行列」であり、そもそも
不均等な拡大縮小をしないんであれば、回転行列をそのまま法線にかければいいだけ
0523デフォルトの名無しさん
2014/03/23(日) 13:52:04.71ID:SYaQzFW/そのままの行列使っていいのかな?
0524デフォルトの名無しさん
2014/03/23(日) 13:59:33.93ID:hqNhlXg+但し拡大縮小したら正規化は必要
0525デフォルトの名無しさん
2014/03/23(日) 16:17:49.05ID:VESVr2dCだからそのままで良くなる
0526デフォルトの名無しさん
2014/03/24(月) 08:18:25.12ID:ePCbQSRQ0527デフォルトの名無しさん
2014/03/24(月) 10:18:45.07ID:RmApgLiRタイマーにしたら緩和されたけど、数秒に1回ぐらいチラつきが出る
0528デフォルトの名無しさん
2014/03/24(月) 10:31:18.60ID:O8NGFxpj0529デフォルトの名無しさん
2014/03/24(月) 10:54:27.13ID:16BiIMXLアルファブレンドオフにしてるときはそのまま出力アルファが書き込まれるみたいだけど
アレファブレンド有効にしてるときターゲットに書き込まれるアルファ値がどうなってるかの
詳細な仕様てどこかにある?
具体的には今アルファに拡張情報仕込んでるFBOがあって
このFBOへレンダリングする物体で半透明を使う必要が出てきた
RGB成分に関してはFragColor.aに指定した値でターゲットとブレンドが行われているようだが
Aには一定の値が書き込まれているみたい
フラグメントシェーダからブレンドに使う係数と
ターゲットに書き込みたいA値を別に指定して出力できるとベストなのですが
0530デフォルトの名無しさん
2014/03/24(月) 11:04:10.69ID:16BiIMXLそれがあれば最悪2passでなんとか出来るのですが
0531デフォルトの名無しさん
2014/03/24(月) 11:41:43.60ID:1jbdRmYb0532デフォルトの名無しさん
2014/03/24(月) 11:44:57.56ID:O8NGFxpjというかシェーダ使ってるならシェーダで指定した値になるんじゃないの
0533デフォルトの名無しさん
2014/03/24(月) 12:40:15.40ID:16BiIMXLオフスクリーンレンダリング用に用意したRGBA32のFBOに
RGBにはそのままカラー要素をレンダリングして
Aには特殊な拡張情報を仕込んでレンダリングしているのです
(ポストエフェクトのため)
それでアルファブレンドを使わなくて良い物体に関しては
シェーダが出力した拡張情報であるAがそのままターゲットのFBOに書き込まれているのですが
アルファブレンドしたい物体の場合、ブレンド係数のアルファと
ターゲットに出力したい拡張情報としてのAの2つを出力する必要があるじゃないですか?
シェーダが出力したFragColor.aはブレンド係数のほうに使用されていて
レンダリングターゲットのFBOには出力と関係ない一定の値が書き込まれているのです
これら2つの値をどうにかして正しく処理したいなと
ちなみにes2.0なのでMRTは使えません
2passにすればどうとでもなるけど1passで何とか出来ないかなぁ?ということです
0534デフォルトの名無しさん
2014/03/24(月) 13:18:50.91ID:O8NGFxpjデコードの手間も考えると素直に2passしたほうが早いかもねえ
0535デフォルトの名無しさん
2014/03/24(月) 19:49:27.51ID:zwLLqb3Cidleの中でdrawしちゃってるとか?
glutたまに使うけどそんなことなったことない
0536デフォルトの名無しさん
2014/03/25(火) 07:49:26.65ID:WPZQG3hr0537デフォルトの名無しさん
2014/03/25(火) 09:31:03.90ID:NqwPbggMちゃんとidleの中で再描画関数読んでます。
freeglutのコンパイルとか、h libファイルの配置がおかしいのかなあ・・・・
0538デフォルトの名無しさん
2014/03/25(火) 10:53:37.06ID:nPd16FLQ0539デフォルトの名無しさん
2014/03/25(火) 11:00:43.79ID:WPZQG3hr0540デフォルトの名無しさん
2014/03/25(火) 12:38:41.86ID:0Mc0Odtwidleの中で物体をいっさい動かさず、再描画だけでもチラつく?
ティアリングなんじゃないかね
0541デフォルトの名無しさん
2014/03/25(火) 14:32:43.06ID:NqwPbggM再描画だけでも似たようなテンポで物体がチラつきます
ティアリングというものを調べましたが、多分そんな感じだと思います。
0542デフォルトの名無しさん
2014/03/25(火) 19:04:43.61ID:S7B6RAgr0543デフォルトの名無しさん
2014/03/26(水) 01:00:09.60ID:/NYCJuvHダブルでもシングルでもブレますし、ダブルの場合はdisplay関数の最後でSwapBuffersで出力しています
0544デフォルトの名無しさん
2014/03/26(水) 01:15:36.30ID:2qZH+Y/Y0545デフォルトの名無しさん
2014/03/26(水) 01:16:29.15ID:/NYCJuvHソースはこれのまんまです。freeglutのincludeパスだけ少し違いますが。
0546デフォルトの名無しさん
2014/03/26(水) 01:29:13.82ID:pk7k+LuU0547デフォルトの名無しさん
2014/03/26(水) 04:49:07.03ID:Gi3gxxGuglutCreateWindowとglutInitDisplayModeの順序が逆じゃね?
freeなglutは使ったこと無いけど、オリジナルなglutだと
createしてからdisplayModeを変えることはできなかった気がする
0549デフォルトの名無しさん
2014/03/26(水) 12:19:13.83ID:/l0s7arr0550デフォルトの名無しさん
2014/03/27(木) 15:44:10.12ID:Nw+Vt/UM一つの画像ファイルに複数の画像を詰め込んでテクスチャ座標の変化で各コマを表現する奴。
想定環境はOpenGL3.2以上でシェーダーとVBOが使えること。
数フレーム毎に次のコマに進める為、
最初は予め全てのコマの頂点配列(とVAO)を個別に作成して
glBufferData(...,GL_STATIC_DRAW)でGPU側に全部転送しておく実装でした。
次に、コマ数が増えそうなので頂点配列(とVAO)はアニメーション一組につき一個にして、
テクスチャ座標を動的に書き換える方法に変更しようとしました。
(続く)
0551550
2014/03/27(木) 15:47:39.39ID:Nw+Vt/UMglBufferData(...,GL_STREAM_DRAW)にして
数フレームおきにglBufferSubDataかglMapBufferで書き換えることで動作したのですが、
glMapBuffer->memcpyを使った場合妙に遅くなってしまいました。
(旧式のglVertex3f他を使った時よりFPSが下がった)
理由が解る人は教えて下さい。
追記:
四角形描くだけなのでインターリープ配列は使っていません。
実験した環境はFreeBSD+GeForce GT 640です。
ここら辺の詳しい資料へのリンクとか2Dアニメは普通こうやる、
とかいう話でもいいので教えてください。
0552デフォルトの名無しさん
2014/03/27(木) 17:39:49.26ID:6kTPs5DW0553デフォルトの名無しさん
2014/03/27(木) 18:40:40.29ID:IQ0PA/Xd勘違いしてるかもしれんけど
頂点もuvも全部固定の1個でテクスチャ座標をフレーム数(コマ番号)から計算で求まるようにしといて、
頂点シェーダーにフレーム数だけ渡してuvを計算しなおせばいいんじゃないの?
0554デフォルトの名無しさん
2014/03/27(木) 22:59:22.10ID:gBpmgjyr行列をブレンドする
DirectXだろうがGLだろうが中でやってることは変わらんよ
0555デフォルトの名無しさん
2014/03/28(金) 09:01:43.13ID:MmgvLmhjもうちょっと具体的に
0556551
2014/03/29(土) 12:07:46.79ID:5FKJCnSn成程、確かにそれでもできますね。
アニメーションのフォーマットもUniform変数で設定すればいいのか。
その方が確かに速そうだしやってみるか。
glBindBuffer(GL_ARRAY_BUFFER, buffers_[1]);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(tc_data), tc_data);
/* void* p = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
memcpy(p, tc_data, sizeof(tc_data));
glUnmapBuffer(GL_ARRAY_BUFFER);*/
上のコードでglMapBufferが異常に遅い原因は知りたいけど……
0557デフォルトの名無しさん
2014/03/29(土) 14:09:34.51ID:e2zP+zl70558デフォルトの名無しさん
2014/04/01(火) 18:40:37.52ID:NT5gPl2jワールド座標基準の動きなの?ローカル座標基準なの?
ローカル原点を動かしているんだよね?
0559デフォルトの名無しさん
2014/04/01(火) 19:18:32.50ID:aMX7Kq9u0560デフォルトの名無しさん
2014/04/02(水) 03:19:01.01ID:cBhNW89o「ローカル原点を動かしている」って解釈は危うい気がするなあ
それらの関数やglLoadIdentity(),gluLookAt()などがやってるのは「行列」と呼ばれる…まあフィルターみたいなもんだ、それを弄ること
描画などでOpenGLに頂点データを渡したら、まず行列を使って変換してから処理される
感覚的には、使った命令の逆順に変換されてるように感じるかと思う
glLoadIdentity(),glLookAt(),glTranslate(),glRotate()の順で使ったら
渡されたデータは原点を中心に回転され、平行移動され、カメラ基準の座標に直され、そして描画される感じ
0561デフォルトの名無しさん
2014/04/02(水) 13:21:17.25ID:9Deqp9zU0562デフォルトの名無しさん
2014/04/05(土) 13:43:01.89ID:FSMAkWqC0563デフォルトの名無しさん
2014/04/07(月) 18:50:29.05ID:iUtuS61kMinecraftも1.2使ってるみたいよ。
0564デフォルトの名無しさん
2014/04/07(月) 19:28:11.45ID:Pq6AaFst0565デフォルトの名無しさん
2014/04/10(木) 11:04:31.99ID:VhSUYyznOpenGLもオワコンか
0566デフォルトの名無しさん
2014/04/10(木) 11:38:47.80ID:kLuqm+tK0567デフォルトの名無しさん
2014/04/11(金) 17:21:46.62ID:LLNBgEtC0568デフォルトの名無しさん
2014/04/11(金) 20:22:37.09ID:eO6NRIJx0569デフォルトの名無しさん
2014/04/12(土) 02:10:56.43ID:zuiRAUiiDirectXが完全に支配してる
0570デフォルトの名無しさん
2014/04/12(土) 05:15:29.65ID:jnsRXNx10571デフォルトの名無しさん
2014/04/12(土) 09:24:57.83ID:zuiRAUiiハイエンドのゲーム開発だとOpenGLは完全にオワコン
0572デフォルトの名無しさん
2014/04/12(土) 12:02:01.21ID:luCmHrCIいずれ追いつくし、DirectXが衰退するのをただ待ってりゃいい。
0573デフォルトの名無しさん
2014/04/12(土) 12:15:23.94ID:8gocQFQHOpenGLはスマフォで一気に利用率上がったんじゃないかね
0574デフォルトの名無しさん
2014/04/12(土) 13:22:17.55ID:1s7xEy3p0575デフォルトの名無しさん
2014/04/12(土) 14:31:15.14ID:jnsRXNx1まあそもそも任天堂はDSの時点で、ポリゴン系のAPIはかなりOpenGLを意識したものだったが…
0576デフォルトの名無しさん
2014/04/12(土) 16:25:29.47ID:exSVuN7Fカーマック大先生は既にゲームを作る意欲無くしてるだろ
OpenGLを使わなくなった=DirectXに乗り換えただとでも思ったのか?
0577デフォルトの名無しさん
2014/04/12(土) 16:30:12.07ID:/aZ3ncPV0578デフォルトの名無しさん
2014/04/12(土) 16:56:03.57ID:U3ze+O2N0579デフォルトの名無しさん
2014/04/12(土) 17:14:18.69ID:zuiRAUii最大の問題点はOpenGLの設計が古くて低機能な事で、まるっきり作り替えるしかない
0580デフォルトの名無しさん
2014/04/12(土) 17:20:11.36ID:emJMsePWそういう作り方をしている具体的なメーカーの名前を挙げてみろ。
それが当然という書き方をしているからには相当数あるんだろうね。
妄想の中ではさ。
0581デフォルトの名無しさん
2014/04/13(日) 01:57:56.69ID:mQlmfoKUどれが特におすすめでしょうか?
0582デフォルトの名無しさん
2014/04/13(日) 11:20:10.33ID:zh1SAf7rゲームプログラミングのための3Dグラフィックス数学 が一番網羅されてる感じ
わかりやすいかどうかは知らんが
0583デフォルトの名無しさん
2014/04/13(日) 15:55:58.44ID:mQlmfoKUありがとうございます。
できるだけ網羅されたものを求めていたのでそれにしてみようと思います。
0584デフォルトの名無しさん
2014/04/13(日) 22:54:20.14ID:HS3AfBd+,,-─'' -、 ,,ニ二、 ゙ヽ
/ ,r'" _,,r'ヾヽ ゙ヽ ヽ ゙l、
─┼‐ // ,,r'" ^ヽヾ ヽヾ i、
○ // / / |ヾ l、ヽ i、
. ノ ,l,// / | ゙l゙l゙l ゙l i i
ヽ ,l/l l,l/ _ _ ,! |ヾl |゙l l ゙l
. ⌒l ///⌒l ‐''"ヽ ,,r‐\ !l:ト、ヽ | ゙|
ノ ヽ _//||(く| /;;;;;;;;;)-‐-/;;;;;,,,、ヽ .iレ⌒l l ゙l
_,, ⌒l ノ l゙lヽl ヾ;;;;;;/ l;;;;;;;;;;;;;〉 li /〉l ハヽ
_,,-‐''" ノ !llしl ~〈 .ノ`''‐-" .|i,// l | |ヾ
/ ヾ ヽ う l || l ゙l (l ,/- / :/|ノ人゙l、゙l::
,,i" ヾ ヽ 丿|! ト、 l __二、_ / :/|川::::::`ー、゙
. ,i ,-‐、 __,,⊥─,ニて二- ,i" |川;|:::::::::::::::
,i l⌒l i_-=''" ;;;ノT~ヾ /_,,-''",ノ|;l /:::::::::::::
|. _,⊥┤ ゙l,,,-‐T^ヽ ゙i | /" ,/ リ /:::::::::::::::
_,,,-‐''"::::::::;l | ゙l ト、 ゙i ゝ──" ,,r'" ./::::::::::::::::::
-''"::::::::::::;;;-r'''i ' ,' i l \/ミrーく\ ,/::::::::::::::::::::
::::::::_,,-''' | l ノ( i | | ,,l `":::::::::::::::::::::::::
-''' ゙l | ⌒ i / ! ゙> <:::::::::::::::::::::::::::::::::::
゙l ゙ / / ゙::::::::::::::::::::::::::::::::::
0585デフォルトの名無しさん
2014/04/15(火) 12:14:46.53ID:HPAdKYCa〜
-- ←こんなの「大なりイコール」みたいな感じで上で波で下が棒線
わかる人いますか?
0586デフォルトの名無しさん
2014/04/15(火) 12:25:15.22ID:VWlnt6i20587デフォルトの名無しさん
2014/04/15(火) 13:11:12.59ID:HPAdKYCa漸進的に等しい、ホモトープ
というのですか。
なるほど、わからん。
ありがごうございます!
0588デフォルトの名無しさん
2014/04/15(火) 13:12:48.41ID:TLIi7JxU0589デフォルトの名無しさん
2014/04/15(火) 17:38:34.45ID:4pClfs1i0590デフォルトの名無しさん
2014/04/16(水) 13:07:45.78ID:1x2LuEWOi r-ー-┬-‐、i
| |,,_ _,{|
N| "゚'` {"゚`lリ や ら な い か
ト.i ,__''_ !
/i/ l\ ー .イ|、
,.、-  ̄/ | l  ̄ / | |` ┬-、
/ ヽ. / ト-` 、ノ- | l l ヽ.
/ ∨ l |! | `> | i
/ |`二^> l. | | <__,| |
_| |.|-< \ i / ,イ____!/ \
.| {.| ` - 、 ,.---ァ^! | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{ ___|└―ー/  ̄´ |ヽ |___ノ____________|
}/ -= ヽ__ - 'ヽ -‐ ,r'゙ l |
__f゙// ̄ ̄ _ -' |_____ ,. -  ̄ \____|
| | -  ̄ / | _ | ̄ ̄ ̄ ̄ / \  ̄|
___`\ __ / _l - ̄ l___ / , / ヽi___.|
 ̄ ̄ ̄ | _ 二 =〒  ̄ } ̄ / l | ! ̄ ̄|
_______l -ヾ ̄ l/ l| |___|
0591デフォルトの名無しさん
2014/04/27(日) 15:00:46.63ID:vp8B5YyMstatic void cursorpos_callback( GLFWwindow* window, double xpos, double ypos ){
if ( glfwGetMouseButton( aWrap->getWindow(), GLFW_MOUSE_BUTTON_LEFT ) ){
std::cout << xpos << ", " << ypos << std::endl ;
glBegin( GL_LINES );
glColor3d( 0,0,0 );
glVertex2d( 10, 10 ) ;
glVertex2d( 100, 100 ) ;
glEnd();
glFlush();
}
}
このコールバックを、
glfwSetCursorPosCallback( window, cursorpos_callback );
これで登録したんですが、ウィンドウに描画されないんです
std::coutの出力は端末に出るんですが
0592591
2014/04/27(日) 15:02:00.96ID:vp8B5YyMこれは
if ( glfwGetMouseButton( window, GLFW_MOUSE_BUTTON_LEFT )
これの間違いでした
0593591
2014/04/27(日) 15:09:01.83ID:vp8B5YyMstatic void cursorpos_callback( GLFWwindow* win, double xpos, double ypos ){
if ( glfwGetMouseButton( g_window, GLFW_MOUSE_BUTTON_LEFT ) ){
std::cout << xpos << ", " << ypos << std::endl ;
glBegin( GL_LINES );
glColor3d( 0,0,0 );
glVertex2d( 10, 10 ) ;
glVertex2d( 100, 100 ) ;
glEnd();
glFlush();
}
}
int main() {
...
glfwSetCursorPosCallback( g_window, cursorpos_callback );
...
}
0594591
2014/04/27(日) 15:25:07.51ID:vp8B5YyMコールバックで上手くいかなかった理由はわからんです
double xpos, ypos;
glfwGetCursorPos( g_window, &xpos, &ypos );
glBegin( GL_LINES );
glVertex2d( 0, 0 );
glVertex2d( xpos, ypos );
glEnd();
0595デフォルトの名無しさん
2014/04/27(日) 18:45:39.30ID:uHVXxm2Iコールバック関数にブレークポイント置いたり、printf入れてみたりする、いわゆるデバッグってのをしてみたらどうよ
0596デフォルトの名無しさん
2014/04/28(月) 04:53:09.88ID:zQG2SC7g言われてから自分なりにデバッグしてみました
while (! glfwWindowShouldClose( g_window ))
{
glClear( GL_COLOR_BUFFER_BIT );
glfwSwapBuffers( g_window );
glfwPollEvents();
}
コールバック関数にブレークポイントを置いてステップ実行すると、
マウスのイベントはglfwPollEvents()でポーリング(?)されました
glfwSwapBuffers( g_window );
glfwPollEvents();
これを
glfwPollEvents();
glfwSwapBuffers( g_window );
こっちに入れ替えるとチラツキながらコールバック関数内の描画が反映されました
公式ドキュメントでは前者の順序で書いてあるので、これは
コールバック関数内で描画をするなってことになるんですかね
0597デフォルトの名無しさん
2014/04/28(月) 04:58:28.69ID:CuLw9jaa0598デフォルトの名無しさん
2014/04/28(月) 05:09:25.34ID:zQG2SC7gそれだとメインループと合わせて1ループで2回以上スワップすることにならない?そういうのも普通に有りなの?
0599デフォルトの名無しさん
2014/04/28(月) 08:35:08.48ID:vjxMtYtLglClearしてからすぐにSwapbufferしたら画面になにも出てこないにきまってる
glClearとSwapbufferの間で描画。これ基本。
PollEventsはいろんなイベント処理だから、そのなかで描画するとどのコールバックが何描画してるかわけわかんなくなるし、
イベント処理が無い時は何も描画しない(=チラつく)
PollEventsではフラグ立てたり、マウス位置保存したりだけして、
glClearとSwapBuffersの間で1度だけ描画関数を呼ぶのが普通のやりかた
0600デフォルトの名無しさん
2014/04/28(月) 12:32:41.93ID:zQG2SC7gそうなりますよね
基本通りにやってみます
ありがとうございました
0601デフォルトの名無しさん
2014/04/29(火) 12:57:49.31ID:QVS0IsZT質問があります。
FBOを使った毎フレーム2パス描画のアルゴリズムを実装する場合、
サンプルプログラムによっては1パス目でFBOを使ってテクスチャに書き込んだ後に、
glFinish()やglFlush()を呼んでいるのですが、
#多分2パス目でテクスチャを参照する際に確実に書き込まれているようにという意図だと思われる
これって必要なのでしょうか?
2パス目(FBO標準に戻して全画面一枚絵描画等)の時点で1パス目の更新が完結している保証があるかどうか知りたいです。
どなたかご存知の方、ご教授ください。
0602デフォルトの名無しさん
2014/04/29(火) 19:59:52.25ID:bqnQOPU/なんか注意することある?
0603デフォルトの名無しさん
2014/04/30(水) 01:33:57.89ID:4192FpQw不要
OpenGLはポリゴンを指定された順番で描画する
2パス目のポリゴンを描画できるということは
1パス目の描画はすべて完了しているということだ
0604デフォルトの名無しさん
2014/05/02(金) 15:03:51.06ID:Cd4tkU62あとOpenGLってオブジェクトをGluintで識別しててわかりにくいんだけど、
みんなはクラスでラップしてる?
0605デフォルトの名無しさん
2014/05/02(金) 18:54:27.45ID:G8Q5FRYK0606デフォルトの名無しさん
2014/05/03(土) 09:24:23.18ID:xWVeQAuG0607デフォルトの名無しさん
2014/05/03(土) 16:51:27.81ID:xWVeQAuG0608デフォルトの名無しさん
2014/05/03(土) 23:54:53.79ID:r5vGDKEL自分の使う機能しか実装してないけど
0609601
2014/05/05(月) 13:52:01.95ID:YfxW3sI9情報Thanks!!他のサンプルでは入ってないし、
glFinish呼ぶとグラボのファンが五月蝿いので疑問だったんだ。
>>604
ひまわり本はシェーダーのコードはともかく、
OpenGL側のサンプルプログラムに割と酷い部分があるので注意。
具体的には、
・glDelete系による後始末を一切していない
・使用していないメンバ変数やコードが結構ある
・頂点データ生成のコードに関しては一切説明が無く、
章が進むと同名のソースが密かに機能Upしていたり、仕様変更がされていたりする。
ただし、扱っている題材は幅広く説明も要点を抑えた感じでかなりイイ。
0610601
2014/05/05(月) 14:14:05.53ID:YfxW3sI9ひまわり本の一部のサンプルのテクスチャ座標の扱い上下逆なんじゃないかという気がする。
鬼の顔のモデルにテクスチャで陰影つけたりする奴とか本の写真の通りになる?
0611601
2014/05/07(水) 16:44:19.65ID:cM2EPKcBひまわり本ではPNGファイルのロードにQtのconvertToGLFormatを使っているが、
この関数、内部でY軸反転させている模様。
ひまわり本内では一貫してテクスチャ座標は左下が(0,0)で右上が(1,1)としているので、
間違ってるわけではなさそう。
Qtのオンラインリファレンスに書いてないのはひどいなぁ。
#もちろんひまわり本内にも書いてない。
0612デフォルトの名無しさん
2014/05/07(水) 18:20:51.07ID:wv3j6qW20613デフォルトの名無しさん
2014/05/08(木) 08:43:27.40ID:OpdZaJwZ0614デフォルトの名無しさん
2014/05/08(木) 19:06:22.08ID:sX1IT6Abフロントバッファの内容を確認したいんだけど、トリプルバッファリング方式の
キャリア(4.1.2)でいざフレームバッファを読んでみるとある時は#0(0x0〜)、
ある時は#1(0x1FE000〜)、ある時は#2(0x3FC000〜) がフロントバッファに
アドレッシングされていて決め打ちで読めない現象に悩まされてる
仕方ないのでAndroidのソースを調べ始めたんだけど、OpenGLのフリップ関係の
制御は全て eglSwapBuffers 一本から始まると考えて大丈夫ですか?
もし他にもフリップを誘発する経路が存在するようであれば教えて下さい
0615デフォルトの名無しさん
2014/05/15(木) 00:21:54.92ID:Mg+FK4UrES2.0ではオフスクリーンで描画した画像をCPU側に持ってくるには、
一端画面に表示してglReadPixels()で取ってくるしかないのでしょうか?
0616デフォルトの名無しさん
2014/05/15(木) 00:24:12.84ID:IesTMlJ00617デフォルトの名無しさん
2014/05/15(木) 01:17:00.51ID:Mg+FK4UrなんとFBOから出来るのですか。出来ないと思い込んでました。
やってみます。ありがとうございました。
0618デフォルトの名無しさん
2014/05/17(土) 16:11:03.84ID:/suBVetdttp://cpplover.blogspot.jp/2014/05/opengl.html
0619デフォルトの名無しさん
2014/05/17(土) 18:03:37.25ID:An41yh6m主にこれが最大の糞。
0620デフォルトの名無しさん
2014/05/17(土) 18:10:55.05ID:OH3OiQwqそのドワンゴ社員、結構英語適当なのに、怒濤のように翻訳してるんだよね。安かろう悪かろうなのも仕様の内ってことなんだろうけど。
0621デフォルトの名無しさん
2014/05/17(土) 18:21:59.50ID:CIZJhZT4そんなに嫌なら
wrapper書くか
OpenGL自体使わなければいいのに
0622デフォルトの名無しさん
2014/05/17(土) 19:25:27.82ID:/suBVetdクロスプラットフォームでは唯一の選択肢だし
0623デフォルトの名無しさん
2014/05/18(日) 05:43:15.89ID:Co4EsaPX0624デフォルトの名無しさん
2014/05/18(日) 06:08:45.59ID:v6pzKKFa0625デフォルトの名無しさん
2014/05/18(日) 06:23:11.19ID:Nx4TL0Zoしかし, GPUへ送るデータ量が増えてしまう。
データを予めバインドして, レンダリングステートを設定しておけば
DrawするときにGPUへ送るデータ量は少なくて済むし
次にDrawするときは必要最低限のレンダリングステートの変更で済む。
GPUとCPU間のデータ転送は遅めなので, 少しでも高速化できるようなAPI設計になっている。
0626デフォルトの名無しさん
2014/05/18(日) 07:00:44.71ID:NNjUoszT0627デフォルトの名無しさん
2014/05/18(日) 11:19:43.45ID:bOS8p9Zr特定のbindingのありなしで引数の意味まで変わるとか、あれはないわ。
0628デフォルトの名無しさん
2014/05/18(日) 11:31:37.27ID:c000QlqKバッファに結びつける場合は別の関数名にすべきだよなあ
0629デフォルトの名無しさん
2014/05/18(日) 13:15:24.69ID:vXasxGe8その程度のことは気にならない
根本的な問題は別のところにある
0630デフォルトの名無しさん
2014/05/18(日) 13:39:44.11ID:gRfNBFCL聞いてやるから言うてみ
0631デフォルトの名無しさん
2014/05/18(日) 23:09:13.53ID:GHmo1AGN0632デフォルトの名無しさん
2014/05/18(日) 23:11:29.52ID:FQ7Rxnkg0633デフォルトの名無しさん
2014/05/18(日) 23:26:09.51ID:BExb4OPWむしろ頭をglの2文字やGL_の3文字で済ませてることが怖いくらい
0634デフォルトの名無しさん
2014/05/19(月) 08:39:40.52ID:r9gcZ5l60635デフォルトの名無しさん
2014/05/19(月) 08:41:35.45ID:6L2g2kAx0636デフォルトの名無しさん
2014/05/19(月) 10:50:59.22ID:W/1J5/qo0637デフォルトの名無しさん
2014/05/19(月) 11:24:37.77ID:g5MJun4kDLやGLFW
0638デフォルトの名無しさん
2014/05/19(月) 18:19:53.09ID:ynsqm7j/0639デフォルトの名無しさん
2014/05/19(月) 19:06:59.10ID:qsr8sp2f0640デフォルトの名無しさん
2014/05/19(月) 23:14:09.67ID:U4JsCCwu0641デフォルトの名無しさん
2014/05/20(火) 02:24:00.10ID:tT+zvDnf0642デフォルトの名無しさん
2014/05/20(火) 09:19:20.40ID:fBuypSNQ例えば画像の最大輝度を得るには
glReadPixelsなどでやるしかないのでしょうか?
Fシェーダで輝度が見えてるから値を
メモできればいいのにとか思ったのですが。
0643デフォルトの名無しさん
2014/05/20(火) 23:09:14.55ID:by0oi/CJ画像はテクスチャとして渡し、シェーダの各スレッドがそれぞれテクスチャのある範囲の
最大輝度を求めて出力する。これを2回とか3回繰り返して最終的に1つの値を得る。
0644デフォルトの名無しさん
2014/05/20(火) 23:17:27.90ID:/lJbxDlg0645デフォルトの名無しさん
2014/05/20(火) 23:20:38.21ID:IbdZVAjT0646642
2014/05/21(水) 10:45:21.39ID:yZM+yAfCやりとりできるんですね。
調べてみます。
みなさんレスありがとうございました。
0647デフォルトの名無しさん
2014/05/21(水) 15:11:37.87ID:pp2ngTqP幅が半分のテクスチャを用意して、フィルタなしで幅半分に縮小、端はクリップ
シェーダで右隣と比べて輝度が高い方を出力
幅が1になるまで繰り返す
高さ方向も似たのを繰り返す
残った1点が輝度最大のやつです
ふつー主記憶に置いて縦方向に分割してCPUで並列処理か、VRAM上でOpenCL
0648デフォルトの名無しさん
2014/05/21(水) 23:28:31.32ID:8DtWSjmA0649デフォルトの名無しさん
2014/05/22(木) 09:47:02.67ID:rusYBd1xそのかわり、OpenGL3世代以前だと使えないけど。
0650デフォルトの名無しさん
2014/05/22(木) 23:33:55.12ID:hLL7iQq6速度は気にせず、コードが単純な方が良いということならいいけど。
0651デフォルトの名無しさん
2014/05/23(金) 15:34:47.42ID:oJ1Z/eF1それでもVBOじゃないより早くなるんですか?
0652デフォルトの名無しさん
2014/05/26(月) 11:54:23.42ID:l5tRv2X5もちろん使える
https://developer.apple.com/jp/devcenter/ios/library/documentation/OpenGLES_ProgrammingGuide.pdf
これの87ページあたりから読んでみれば
このドキュメントはiOS用だけどOpenGLに関わる人は必読だよ
OpenGLで日本語の実践的なドキュメントとか皆無だからAppleには足向けて寝れない
0653デフォルトの名無しさん
2014/05/26(月) 12:06:42.58ID:l5tRv2X5ちなみに頂点いじる場合はシェーダーでやった方がいいだろうね
0654デフォルトの名無しさん
2014/05/26(月) 17:59:36.70ID:4IYPvdHHOpenGLではどうやって判定しますか?
0655デフォルトの名無しさん
2014/05/26(月) 18:23:20.85ID:RQvTQ9F60656デフォルトの名無しさん
2014/05/27(火) 10:24:21.57ID:vq4/jPEuシェーダで頂点配列とか渡す方法がまだわからないので調べてきます
0657デフォルトの名無しさん
2014/05/27(火) 19:13:04.82ID:sc2Gp3qx日本の3Dグラフィックスの中心になるようなの
よろしく
0658うぜぇ
2014/05/27(火) 19:28:26.35ID:ynKJdYKPよろしく
0659デフォルトの名無しさん
2014/05/27(火) 19:34:04.48ID:vwK3Zsni0660デフォルトの名無しさん
2014/05/28(水) 00:25:59.80ID:Nst+aLx90661デフォルトの名無しさん
2014/05/28(水) 00:37:34.09ID:Dsgx8CT+0662デフォルトの名無しさん
2014/05/28(水) 07:24:46.97ID:8pIXW7AP0663デフォルトの名無しさん
2014/05/29(木) 14:45:28.52ID:TNXiJzhpWindowsやAndroidだと列ベクトルだよね?
0664デフォルトの名無しさん
2014/05/29(木) 21:09:38.72ID:/xPvXgoN0665デフォルトの名無しさん
2014/05/29(木) 22:43:13.99ID:N9H85KiB何が共有できて何ができないのか一覧が欲しい…。
0666デフォルトの名無しさん
2014/05/29(木) 22:48:33.44ID:TNXiJzhp自分で決めるものなの?
0667デフォルトの名無しさん
2014/05/29(木) 22:49:59.61ID:N9H85KiB問題なかったす。
0668デフォルトの名無しさん
2014/05/30(金) 14:06:36.95ID:J2vd6dyP・本とかブラウザで行列を表示する時の書き方
・行列演算ライブラリでの引き数の並び (掛ける掛けられるの左右)
→これはライブラリ実装者の考え方の違い
変わらないもの
・メモリ上の各要素の並び
→だからソースコードに行列を書き込む時の並びや演算結果は全く同じ
はまりポイント
・本に書いてある行列をソースに書き写す時にOpenGLの場合は見た目上転置してないと駄目
さらに深い話し
・行列の掛け算をSIMD演算する場合にブロードキャスト演算(積和演算)を使うか内積を使うか
→積和演算は列ベクトル、内積を使う場合は行ベクトルと考えると自然
0669デフォルトの名無しさん
2014/05/30(金) 17:19:44.19ID:fPzQi8o50670デフォルトの名無しさん
2014/05/30(金) 17:29:10.23ID:+2oRneAz0671デフォルトの名無しさん
2014/05/30(金) 17:36:05.45ID:fPzQi8o50672デフォルトの名無しさん
2014/05/31(土) 00:04:18.16ID:ORxAoz7U持たせる話は画像関係のライブラリを書く人にとってはトリビアルに
易しいことだし、使う側にしても一度わかってしまえば簡単なんだけど
その最初の一度がなかなか面倒なんですわ
0673デフォルトの名無しさん
2014/05/31(土) 01:30:06.28ID:iCxw2hXF0674デフォルトの名無しさん
2014/05/31(土) 22:15:51.93ID:ORxAoz7U関数ポインタを引数として別の関数ポインタを返す関数へのポインタを引数とする関数のプロトタイプ宣言とか.
0675デフォルトの名無しさん
2014/05/31(土) 23:22:35.80ID:fx0E3A3uVBOとかにしなくても
0676デフォルトの名無しさん
2014/06/01(日) 01:39:37.29ID:LjHesw71それは関数オブジェクトにしませんか、などとはC++に慣れ過ぎでしょうかね・・・・
0677デフォルトの名無しさん
2014/06/01(日) 02:31:17.61ID:+IEDdSur関数ポインタC = &func()
func2(関数ポインタC)
このfunc2のプロトタイプ宣言か
何段階もあれば難しく思うかもしれないが1段階ずつやってけばええねん
0678デフォルトの名無しさん
2014/06/01(日) 04:11:38.64ID:G7XNVB3u0679デフォルトの名無しさん
2014/06/01(日) 05:24:32.40ID:r/jz+5Pbhttp://codepad.org/OuIzykCI
お題としては楽しいものでしたが‥
0681デフォルトの名無しさん
2014/06/03(火) 15:52:36.66ID:a6DVEFf+疑似的に同じことをやろうとして、if文で呼び出す関数を変えて
処理を分けてみたけど、シェーダープログラムごと入れ替えた
場合と挙動が違うし・・・。
どないしたらええねん・・・
0682デフォルトの名無しさん
2014/06/03(火) 16:18:16.46ID:tC4THgyf0683デフォルトの名無しさん
2014/06/03(火) 23:40:57.13ID:dvYq0Snjテクスチャーの色情報を適当にスケーリングする方法ってありませんか?
0684デフォルトの名無しさん
2014/06/04(水) 06:56:03.47ID:Dyo1rkeX0685デフォルトの名無しさん
2014/06/04(水) 10:00:45.18ID:fgpJqtxW0686デフォルトの名無しさん
2014/06/04(水) 10:28:51.95ID:/9qBSbkxノシ
0687デフォルトの名無しさん
2014/06/04(水) 11:42:55.66ID:fgpJqtxW0688デフォルトの名無しさん
2014/06/04(水) 13:55:19.83ID:ROGZJfbx間違っても日本人が書いたOpenGL本は買うなよグレートな糞だから
(ただし床井先生を除く)
0689デフォルトの名無しさん
2014/06/04(水) 16:11:04.96ID:fgpJqtxW0690デフォルトの名無しさん
2014/06/04(水) 16:41:26.13ID:2ij5JthNhttp://wgld.org/
0691デフォルトの名無しさん
2014/06/04(水) 23:27:23.72ID:XPIqNyqT少しばかり古いけど自分はここでモダンなOpenGLの書き方とともにGLSLに入門した
0692デフォルトの名無しさん
2014/06/05(木) 00:19:55.82ID:T2hGk5OT四角形のポリゴンに透過部分があるテクスチャを貼りつけたとします。
そのポリゴンをライトで照らして影を作りたいのですが、透過部分には
影を作りたくありません。
こういう場合、どうすればよいのでしょうか?
何か参考になる資料があれば教えてください。
0693デフォルトの名無しさん
2014/06/05(木) 02:06:44.86ID:Mvr5+GEe0694デフォルトの名無しさん
2014/06/05(木) 10:00:44.05ID:T2hGk5OTありがとうございます。
ひまわり本を参考にシャドウマップを実装してみたのですが、
透明部分にも影ができてしまいます。
深度値情報を書き込むときの設定に問題があるのでしょうか?
0695デフォルトの名無しさん
2014/06/05(木) 10:05:04.49ID:XqFykZgR0696デフォルトの名無しさん
2014/06/05(木) 11:14:38.58ID:T2hGk5OTありがとうございます!
以下を参考にやってみましたが、相変わらず影が出てしまいます・・・。
OpenGL側の設定に問題があるのでしょうか・・・。
https://github.com/henry4k/apoapsis/blob/31f540e3ee32de6f290476ebff972c1b72c8ae86/core/Shaders/Depth.frag
in vec2 TexCoord;
uniform sampler2D Tex;
void main()
{
float alpha = texture2D(Tex, TexCoord).a;
if(alpha < 0.5)
discard;
gl_FragDepth = gl_FragCoord.z;
}
0697696
2014/06/05(木) 12:14:56.03ID:T2hGk5OTアプリ側の設定が間違ってました。
TexCoordのLocation設定がずれてました・・・orz
調査中に同じような問題を抱えている人を見つけました
http://gamedev.stackexchange.com/questions/5038/shadow-mapping-and-transparent-quads
http://stackoverflow.com/questions/14415387/opengl-3-2-cast-right-shadows-by-transparent-textures
0698デフォルトの名無しさん
2014/06/09(月) 05:42:05.20ID:c48/XOF0一つの頂点に二つのUV座標を持たせたい場合ってなにかうまい解決法ってありますか?
今のところ頂点増やすしか無いかなあと思っているのですが
0699デフォルトの名無しさん
2014/06/09(月) 13:48:28.22ID:WySlDk8T0700デフォルトの名無しさん
2014/06/09(月) 14:55:08.54ID:c48/XOF00701デフォルトの名無しさん
2014/06/09(月) 15:08:46.63ID:DiBbf/Z2UVが二つ必要なら、シェーダに2つ引き渡せばいいだけ。
なんで頂点を増やす必要があるのか意味不明。
0702デフォルトの名無しさん
2014/06/09(月) 15:18:29.37ID:c48/XOF0円柱(実際は短冊系を丸めて並べたもの)に画像を貼り付けることを考えるとわかると思いますが
円周方向にu座標を割り当てるとすると
たとえば
u = 0,0.1,0.2,....,0.9
などと割り当てられますが、U=0.9から0.0への補間を行うと
0.9,0.91,0.92,...,1.0
とはならずに
0.9,0.89,0.88,...,.0
と補間されます
シェーダに2つ引き渡しても、その2つの間で補間ができるわけではないので解決ではないですね
0703デフォルトの名無しさん
2014/06/09(月) 15:21:35.76ID:c48/XOF0(補間まで指定できないと意味が無い)
誤解を招いてすいません
0704デフォルトの名無しさん
2014/06/09(月) 16:16:58.92ID:WySlDk8Tインデックスバッファを使う場合、位置が重複する頂点は不要。
例えばu方向に10個の頂点があるとして
index=0 1 ... 9 0
u=0 0.1 ... 0.9 1
この方法なら側面の境界だけでなく、キャップとの境界でも別のUV座標を指定できる。
ただメッシュの位相情報が不要で描写だけなら、頂点を増やすのがシンプルでいい
0705デフォルトの名無しさん
2014/06/09(月) 17:52:01.66ID:c48/XOF0index[9] = 9, index[10] = 0
このindexの指し示すuの値が
u[index[9]] = 0.9,u[index[10]] = 0
で、結局同じことになりませんか?
0706デフォルトの名無しさん
2014/06/09(月) 18:06:58.54ID:WySlDk8T違う。indexとuはペアとして扱う。正しくは
u[9] = 0.9,u[10] = 1
VertexShaderで書くと↓
// index attribute
isamplerBuffer indexBuffer;
samplerBuffer uvBuffer;
// vertex attribute
samplerBuffer positionBuffer;
void main(void)
{
int index = texelFetch(indexBuffer, gl_VertexID).x;
vec2 uv = texelFetch(uvBuffer, gl_VertexID).xy;
vec3 pos = texelFetch(positionBuffer, index).xy;
0707デフォルトの名無しさん
2014/06/09(月) 18:09:54.24ID:c48/XOF0ありがとうございます。
0708デフォルトの名無しさん
2014/06/09(月) 20:46:58.48ID:nokOzPQVテクスチャラッピングで解決すべき話であり、
見当違いもいいとこ。
0709デフォルトの名無しさん
2014/06/09(月) 21:05:43.37ID:w5pULqfp0710デフォルトの名無しさん
2014/06/09(月) 21:17:02.96ID:c48/XOF0キャップ(上面底面)はないと思ってください
側面をぐるっと巻くようにテクスチャーを貼りたい場合、
頂点を重ねてしまうとUV(のU)の補間が最後と最初の頂点を結ぶところで
逆になってしまう、というのが問題でした
>>708
これテクスチャラッピングで解決できますかね?UVそのものに問題があるので
ラッピング以前の問題だと思ったのですが
0711デフォルトの名無しさん
2014/06/09(月) 21:53:12.00ID:VwkRwT9fそれならテープで張り付いてる部分にはUV値の違う2つの頂点が重なっているように思うんだけど
無理に一つの頂点で表現すると変になる
0712デフォルトの名無しさん
2014/06/09(月) 22:22:06.79ID:A3T/rzKA繋ぎ目の所は確かに頂点が2つ必要だ
0713デフォルトの名無しさん
2014/06/09(月) 22:23:38.34ID:A3T/rzKA0714デフォルトの名無しさん
2014/06/09(月) 22:26:10.48ID:A3T/rzKA0715デフォルトの名無しさん
2014/06/09(月) 22:32:27.48ID:A3T/rzKA0716デフォルトの名無しさん
2014/06/10(火) 07:31:26.20ID:qfe9QTZOObjファイルのフォーマットだと頂点座標, UV座標, 法線ベクトルごとにインデックスを持てるけど
OpenGLでは基本的には頂点属性ごとにインデックスを持つ事はできない。
なので
1, 同じ位置だとUV座標が違う頂点を作る。
2, >>706のようにバーテックスシェーダでテクスチャバッファオブジェクトを使って頂点属性ごとのインデックスを持たせる。
3, >>71のフラグメントシェーダで法線ベクトルからUVを計算する
他に何か方法がある?
1の方法はプログラマブルシェーダがなくても使えるし
2, 3よりは実装が簡単になりそうなのでそんなに悪くはない気もするが
0717デフォルトの名無しさん
2014/06/11(水) 15:15:56.64ID:8t9Ps5Biレイトレをやるとか、ジオメトリシェーダでピクセルと頂点が同じになるまで分割しまくる
とかやれば完全に正確な円柱を作成できそう(多分)
0718デフォルトの名無しさん
2014/06/12(木) 10:01:57.39ID:Ex4E5sIm人間から見てカクカクが目立たなければいいんだよ(多分)
0719デフォルトの名無しさん
2014/06/15(日) 03:49:42.50ID:c8Ar7WIE次のように縦並びの場合は B を繰り返すことが出来ました。wrap=repeat で U座標に 2 とか 3 を設定します。
A
B
C
ですがこれではテクスチャ画像が縦長になってしまうので、次のように合成したいです。
ABC
DEF
GHI
この場合、例えば E の部分のみを繰り返し貼り付けることは出来ますか?先の縦並びの場合は、
BBB... と繰り返すことが出来るのですが、この例では EF... と F などが入ってしまいます。
0720デフォルトの名無しさん
2014/06/15(日) 04:18:24.85ID:tk/Cl61uラップモードでは無理だと思う。
テクスチャ座標を範囲内に制限するShader書けばできるんじゃないかな。
ただし端のテクセル補間で範囲外のテクセルが混じる可能性大。
0721デフォルトの名無しさん
2014/06/15(日) 13:13:01.85ID:c8Ar7WIEやはり無理ですよね。縦配置でやることにします。
ありがとうございました。
0722デフォルトの名無しさん
2014/06/16(月) 08:34:46.62ID:Pzpw+iEfB
B
B
って縦にリピートするときは ABCって横長になっちゃうんだし、
画像ファイルは1つでもA B C...独立したtexture objectにしたらいいのでは
0723デフォルトの名無しさん
2014/06/16(月) 12:18:10.74ID:bPGbiyftシェーダーで対処すべき
端の問題はリピートする部分の周りに1ドット余計に書いておけば問題無い
0724デフォルトの名無しさん
2014/06/16(月) 19:22:22.66ID:n0zhqSfCインデックスが個別ってどうなんだよwww
これのせいでglDrawElementsがつかえませんw
0725デフォルトの名無しさん
2014/06/16(月) 20:19:32.06ID:bPGbiyftCOLLADAが糞なのではない
あらゆるパターンのデータを交換出来るように仕様が出来てて、その使ってるエクスポータが
個別に出しているに過ぎない
とりあえず1回全部インデックスを辿って最小のパターンを出力すればいいだけ
0726デフォルトの名無しさん
2014/06/16(月) 20:24:55.68ID:zTfOULuz0727デフォルトの名無しさん
2014/06/22(日) 00:02:00.28ID:JRAQ0i4E0728デフォルトの名無しさん
2014/06/22(日) 17:47:15.99ID:8Sj5U0+Afor(int i = -value ; i < value+1 ; i++)
(valueは可変で正のint値)
なるコードを書くとクラッシュするんだが
(Radeonでは問題なく動く、for(int i = 0; i < 2*value + 1 ; i++)などで回避可能)
そういうもん?周知の問題なのかね?
0729デフォルトの名無しさん
2014/06/22(日) 18:25:26.36ID:0/9xPr8u0730デフォルトの名無しさん
2014/06/22(日) 18:37:45.12ID:qRngvI1E0731デフォルトの名無しさん
2014/06/22(日) 18:39:31.18ID:qRngvI1E0732デフォルトの名無しさん
2014/06/22(日) 18:53:59.63ID:JJhw/ffl0733デフォルトの名無しさん
2014/06/22(日) 19:51:53.90ID:8Sj5U0+Aあとこれと直接関係ないけどMacでBootcampをつかってwindowsを起動したときのopenGLの挙動もなんか怪しげ
0734デフォルトの名無しさん
2014/06/23(月) 21:02:52.75ID:VDt/S1S70735デフォルトの名無しさん
2014/06/24(火) 02:04:57.95ID:yC/6A8m1それコンパイルかリンクエラーが出てるのに無理やり実行してないか?
0736デフォルトの名無しさん
2014/06/24(火) 05:12:35.86ID:Elac9g2Uそれと
for(int i = -10 ; i < value + 1 ; i++)
だとクラッシュしない模様
0737デフォルトの名無しさん
2014/06/24(火) 14:34:04.64ID:yDq5nVzd0738デフォルトの名無しさん
2014/06/24(火) 17:56:12.82ID:Elac9g2U0739デフォルトの名無しさん
2014/06/24(火) 19:15:39.77ID:6s2VwAqc0740デフォルトの名無しさん
2014/06/24(火) 19:17:41.23ID:Elac9g2Uint value = 10;
0741デフォルトの名無しさん
2014/06/24(火) 20:17:58.29ID:yDq5nVzd0742デフォルトの名無しさん
2014/06/25(水) 08:11:14.94ID:7cMvyUPvバージョンアップで修正されたんでしょうかね
0743デフォルトの名無しさん
2014/06/25(水) 10:20:07.49ID:CABWBtC90744デフォルトの名無しさん
2014/06/29(日) 11:34:20.23ID:aBhNPyUsglActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, TextureObject );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glActiveTexture( GL_TEXTURE1 );
glBindTexture( GL_TEXTURE_2D, TextureObject );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
同一のテクスチャオブジェクトを別々のサンプリング方法で使いたい場合は
SamplerObjectが使えない環境の場合は全く同じ内容のテクスチャを
複製して別々に設定しないといけない感じですか?
0745デフォルトの名無しさん
2014/07/09(水) 13:06:40.50ID:UfTBEMZK2年位前に最後にやった時はglLightfvでパラメータ指定して
シェーダの中でgl_LightSource[i]でアクセスしましたけど
0746デフォルトの名無しさん
2014/07/10(木) 00:50:59.87ID:EQQusCRNuniform変数にライトの情報を入れる。
uniform変数じゃ足りないならテクスチャバッファオブジェクトに入れる。
これがモダン。
新しい時代のやり方さ。
0747デフォルトの名無しさん
2014/07/11(金) 23:39:10.62ID:j7V4u+C6取得すると最初の1回目だけ正しくて、あとは何回やっても最初に取得した内容と同じ
ものが返ってくる。しかもAMDでだけ発生してNVIDIAだと起きない。
プログラムのバグだとすれば、どのへんが怪しいかわかる人いませんか?
問題の切り分けは進めてるけど、なにぶん元のプログラムがそれなりの規模なもんで、
なにかアタリをつけられればと。
0748デフォルトの名無しさん
2014/07/12(土) 03:07:54.03ID:hZ9DjkyPここに書くスペースが足りない
0749デフォルトの名無しさん
2014/07/12(土) 03:18:45.99ID:fG0isNL20750デフォルトの名無しさん
2014/07/12(土) 05:25:15.06ID:Zl80GKyAhttp://devgurus.amd.com/thread/167259
は参考になる?
0751デフォルトの名無しさん
2014/07/12(土) 06:48:01.70ID:GRHuV+O4AMDだとそもそもテクスチャの更新自体がうまくいってないって事?
更新は出来ててglGetTexImageだけがおかしいの?
0752デフォルトの名無しさん
2014/07/12(土) 07:09:26.52ID:CCLGWIX7単純な再現コード作る方が楽だろうから
それ造ってうp
0753デフォルトの名無しさん
2014/07/12(土) 07:13:15.34ID:Mr5xF++C0754747
2014/07/12(土) 07:54:49.05ID:miswn7Wr更新したテクスチャを使った描画には反映されているのに、glGetTexImageで返されるデータだけが
おかしいんです。
glBindTexture( GL_TEXTURE_2D, texture_id );
glGetTexImage( GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer );
glBindTexture( GL_TEXTURE_2D, 0 );
取得するあたりのコードはこれだけで、確認した項目としては
・各々glGetError()でステータスをチェックするとすべてGL_NO_ERROR
・bufferは事前に初期化していて、glGetTexImageで更新はされている
・GL_PIXEL_PACK_BUFFER はBindされていない
こんなところです。
0755デフォルトの名無しさん
2014/07/12(土) 08:04:17.29ID:fG0isNL2frame bufferからglReadPixelしてみれば?
0756747
2014/07/12(土) 08:52:46.31ID:miswn7Wrついでに言うとテクスチャの更新はPBOからglTexSubImage2Dで転送しているんですが、この
元のPBOをglMapBufferでmappingして内容を読み出してみてもやはり問題ありません。
glGetTexImageの問題が解決しなければPBOから読み出すように回避しようと思ってますが、
PBO自体の更新と読み出しタイミングを調整しないとならない部分があったりしますので
どうしてもglGetTexImageの問題が解決できなかった場合の回避策と考えてます。
0757デフォルトの名無しさん
2014/07/12(土) 09:14:14.60ID:4xZ44lSC0758デフォルトの名無しさん
2014/07/12(土) 13:14:14.68ID:F5lfKYdO0759デフォルトの名無しさん
2014/07/13(日) 15:49:19.47ID:sxozpvhw0760デフォルトの名無しさん
2014/07/13(日) 22:49:47.44ID:2XMXPGxj3.3以上のOpenGLで線を引きたいのですが、
どうすれば線の太さを変えられるのか分かりません。
もしかして線の太さはGLSLの方で指定するのでしょうか?
よろしくお願いします。
0761デフォルトの名無しさん
2014/07/13(日) 23:15:51.68ID:GxeNZ4tR線分と太さから4点計算してポリゴン作れ
0762デフォルトの名無しさん
2014/07/13(日) 23:25:28.71ID:2XMXPGxj調べたところ、glLineWidthで指定可能な値の範囲は実装依存ということのようです。
GL_ALIASED_LINE_WIDTH_RANGE, GL_SMOOTH_LINE_WIDTH_RANGE, GL_SMOOTH_LINE_WIDTH_GRANULARITY をglGetで出力してみたところ、1でした。
私の使ってるmacではいまのところ線の太さを1より大きくできないようです。
おっしゃる通り、ポリゴンの円柱を線に見立てた方がいいみたいです。
また、geometry shaderでもできそうな感じのようですが、まだそのgeometry shaderを触れるレベルには達していないのであとのお楽しみにしておきます。
0763デフォルトの名無しさん
2014/07/13(日) 23:42:29.05ID:tB168XS5大抵は円柱にしなくても板で十分だよ。視線に対して垂直になるポリゴンにするとかで。
テクスチャ貼って模様とか書くのも板の方が楽だし
0764デフォルトの名無しさん
2014/07/20(日) 21:45:31.45ID:7LbWMfMr0765デフォルトの名無しさん
2014/07/21(月) 13:43:07.11ID:tRke/ZyvglXCreateGLXPixmapというのを見つけたんだけど、できないと書いてあるページが
沢山あるので。
これ普通に使えるんですかね?
あと、今OpenGLを始めるならターゲットにするバージョンはどのあたりですか?
自分のパソコンのドライバを調べたら、3.1になっていました。
0766デフォルトの名無しさん
2014/07/22(火) 16:09:44.51ID:6uRHc4zQglEnable( GL_ALPHA_TEST )でGL_INVALID_VALUEが検出されます。
リファレンス http://www.khronos.org/opengles/sdk/docs/man/
を見る限りはGL_ALPHA_TESTはglEnableに渡せる変数ではないようなのですが、
実際ネット上 https://www.google.com/search?q=glEnable(+GL_ALPHA_TEST+)&oq=glEnable(+GL_ALPHA_TEST+)&aqs=chrome..69i57&sourceid=chrome&es_sm=93&ie=UTF-8
では普通に使われているようですし、動作も問題ありません。
これは一体どういうことなのでしょうか?
0767デフォルトの名無しさん
2014/07/22(火) 17:01:56.27ID:/MGVKQA20768デフォルトの名無しさん
2014/07/27(日) 10:10:33.15ID:kppu+It6openGLでは(0,0)の座標が左下になっていますが、これを左上に設定するにはgluOrtho2Dの引数はどのようにすればいいでしょうか
0769デフォルトの名無しさん
2014/07/27(日) 11:21:35.11ID:VfVS1PsM>>767
補足するとOpenGLES2.0な
OpenGLES1.xにはGL_ALPHA_TESTある。
>>768
デフォルトは左下が-1,-1じゃない?
gluOrtho2D(left, right, bottom, top)
なんだから左上を0,0にしたいならleftとtopに0を入れれば
0770デフォルトの名無しさん
2014/07/27(日) 11:37:27.76ID:kppu+It6レスありがとうございます
今openGL ES 1.0, 1.1を利用しているのですが、プロジェクションモードで
gluOrtho2D(gl10, 0.0f, ScreenWidth, ScreenHeight, 0.0f) を実行した後
(0,0)にテクスチャを描画してみると左下に表示されてしまいます
引数を変えてみても何も変化がないのでなにか手順が抜けているのでしょうか?
0771デフォルトの名無しさん
2014/07/27(日) 11:41:59.69ID:hZ0fwTil0772デフォルトの名無しさん
2014/07/27(日) 11:44:01.46ID:VfVS1PsM試しにglDrawArrayで(0,0)から(0.5,0.5)とかで線引いて座標が意図通りになってるか確認してみたら?
0773デフォルトの名無しさん
2014/07/27(日) 11:48:32.35ID:VfVS1PsMそれよりは避けて通れない座標変換に慣れた方がいいと思うの
0774デフォルトの名無しさん
2014/07/27(日) 11:57:58.36ID:VfVS1PsMそれ使うぐらいなら2Dのグラフィックスライブラリ使った方が簡単だしパフォーマンスも変わらん
0775デフォルトの名無しさん
2014/07/27(日) 12:02:24.90ID:hZ0fwTil0776デフォルトの名無しさん
2014/07/27(日) 12:12:26.99ID:VfVS1PsM0777デフォルトの名無しさん
2014/07/27(日) 12:21:56.27ID:hZ0fwTil上下反転(w
0778デフォルトの名無しさん
2014/07/27(日) 12:56:34.99ID:kppu+It6結果、デフォルトでは画面中央が(0,0)、座標変換後はちゃんと左上が(0,0)になっていました
しかしテクスチャを(0,0)に表示させてみると常に左下に表示されます
テクスチャに関しては2D表示にはDraw Texture Extensionが向いていると聞いたのでglDrawTexfOESメソッドを使っていますが、何故か座標変換の結果が反映されません
0779デフォルトの名無しさん
2014/07/27(日) 13:06:55.60ID:kppu+It6GL11Ext#glDrawTexfOESは射影変換を無視するとの記述を見つけました
お騒がせしました;;
0780デフォルトの名無しさん
2014/07/27(日) 13:22:47.95ID:U7uDR9xp0781デフォルトの名無しさん
2014/07/27(日) 14:00:31.27ID:aKep4oBc0782デフォルトの名無しさん
2014/07/29(火) 14:31:12.44ID:uUNEJSXH0783デフォルトの名無しさん
2014/07/29(火) 23:02:42.66ID:P/ckeYlk0784デフォルトの名無しさん
2014/07/30(水) 02:32:32.95ID:uMsmxuNKオブジェクトが三角形単位で裸にされていくイメージをしたことがあるのは俺だけではないはず
0785デフォルトの名無しさん
2014/07/30(水) 14:58:03.44ID:x/403miQ0786デフォルトの名無しさん
2014/07/30(水) 20:07:51.66ID:r7MOieEY0787デフォルトの名無しさん
2014/07/30(水) 20:14:47.93ID:QJA3s1XVニョタックス思い出したw
0788デフォルトの名無しさん
2014/07/30(水) 20:30:50.01ID:ofJ1Yyamhttp://articleimage.nicoblomaga.jp/image/121/2013/8/0/807f4fd846221f2ddd7249f4e16873aa484bc4d41380744219.jpeg
0789デフォルトの名無しさん
2014/07/31(木) 00:58:50.30ID:wsMm3Wn7わかる圧着ペンチ形状の手動は安いよ
ストリップだとカリングが効かない諸刃の剣3D屋にはお薦めできない
0790デフォルトの名無しさん
2014/07/31(木) 01:46:18.87ID:m9V5jEgtカリングが効かないってどういうこと?
0791デフォルトの名無しさん
2014/07/31(木) 08:44:46.61ID:kd/b1mjX0792デフォルトの名無しさん
2014/07/31(木) 10:50:21.32ID:wsMm3Wn70793デフォルトの名無しさん
2014/07/31(木) 12:27:35.28ID:WA3NSV4lだからそんなことにはならない
0794デフォルトの名無しさん
2014/07/31(木) 18:07:17.48ID:m9V5jEgt0795デフォルトの名無しさん
2014/08/01(金) 02:58:17.27ID:LH1q2jwP0796デフォルトの名無しさん
2014/08/01(金) 12:10:01.28ID:MWJjKrZI0797デフォルトの名無しさん
2014/08/01(金) 12:11:54.68ID:MWJjKrZI0798デフォルトの名無しさん
2014/08/02(土) 13:44:53.47ID:YT/nmnGB0799デフォルトの名無しさん
2014/08/02(土) 13:56:47.63ID:a+ltcb2Yたまに居るし俺は質問したことはないがほとんどOpenGLES 1.1 と2.0しか触ってない。
0800デフォルトの名無しさん
2014/08/02(土) 14:05:20.21ID:YT/nmnGB3Dモデルのファイルってassetsだと、50MBしか置けないらしいので、
resフォルダに置いたら拡張子なしのid名でしか取得できないじゃないですか。
3Dファイルにはテクスチャは拡張子付で記録されてたりするから、どうやって読み込み時にresから取得すればいいのでしょうか?
0801デフォルトの名無しさん
2014/08/02(土) 14:13:55.54ID:UyQakY37Androidスレで聞いた方が早いよ
0802デフォルトの名無しさん
2014/08/02(土) 14:19:32.45ID:my2G1KnuOpenGLESの話ならここで良いが、それは流石にOpenGLの範疇じゃないなあ
0803デフォルトの名無しさん
2014/08/02(土) 19:50:26.14ID:KRFxeO/F0804デフォルトの名無しさん
2014/08/03(日) 02:04:16.06ID:HDl5UN8Lリソースの種類毎にフォルダ作るだろmodelフォルダ作れ
0805800
2014/08/03(日) 17:44:29.61ID:F8Py3zQtmodelフォルダですか。res/rawの下に? 勝手にres/modelって作っちゃっていいのかな。まあやってみればわかるけど。
>>801
>>802
案外、AndroidスレだとOpenGL関係の人が少ないようでレスが返ってこないんで・・・
とりあえず質問の件はぐぐって解決しました。
0806デフォルトの名無しさん
2014/08/03(日) 17:50:03.06ID:YelRlBdq0807デフォルトの名無しさん
2014/08/03(日) 18:34:20.67ID:WaCUOfHuだからそれはOpenGLの話じゃなくて、大きなリソースをどうやってアプリに読ませるかの話だろ…
なんでOpenGLだと思ったの?
0808デフォルトの名無しさん
2014/08/03(日) 20:51:35.36ID:sPECJALjお前はプログラミングの質問で返事が無かったら格闘技のスレに質問に行くのか?
0809デフォルトの名無しさん
2014/08/03(日) 20:58:37.87ID:kaDRRggj0810デフォルトの名無しさん
2014/08/03(日) 21:14:42.98ID:F9uiJQaz半透明テクスチャってどう扱うべきですかね?
特にglDrawElementでポリゴンを描写したい場合
zソート出来ないので一旦不透明部分を書き出して
その上から半透明部分だけ描写する方法を考えたんですが
すると半透明が重なった部分が描写されないなあと思いまして
0811デフォルトの名無しさん
2014/08/03(日) 21:27:30.32ID:/ocyEfo1しょうもない書き込みが増えても仕方ないし
このスレはOpenGLのためにあるスレだ
0812デフォルトの名無しさん
2014/08/03(日) 22:17:37.57ID:AqnF5WVU0813デフォルトの名無しさん
2014/08/03(日) 22:34:56.01ID:kaDRRggj最近はどうだかわからないけど、
自分は半透明はポリゴン単位じゃなくてグループでソートしたり、球みたいのだと裏面描いてから表面とかでごまかせる場合多かった
不透明を書き出してから、半透明はDEPTH書き込みオフ(TESTはON)にして全部書けば
どうせ半透明と半透明が重なった所とか、どっちが先でも大差ないでしょ
とか聞いたことがある(それでうまくいくかどうかは知らない)
もっと高度な方法だと、A-Bufferとか調べてみるといいかも
0814デフォルトの名無しさん
2014/08/03(日) 22:35:22.08ID:jzvBau3e出力のプリミティブを変更する方法ってありますか?
0815デフォルトの名無しさん
2014/08/03(日) 22:43:55.20ID:F9uiJQazあー全部書いてしまうのか
でも不透明の後ろに半透明が来ると処理に困るような・・・TESTはONというのはそこはデプスを見るということかな?
write-readターゲットができればある程度解決しそうな気もするが・・・悩ましい
0816デフォルトの名無しさん
2014/08/03(日) 22:59:53.16ID:kaDRRggj不透明の後ろはTESTがONなら描かれない。
半透明だけWRITEをOFF( glDepthMask(GL_FALSE) )にしておけば半透明の後ろに半透明を描ける
でも手前と後ろで半透明の色が違ったりする場合はばれるよ
0817デフォルトの名無しさん
2014/08/04(月) 00:29:29.01ID:18ryyM6sもうポリゴンで表現できるのは限界まできている
0818デフォルトの名無しさん
2014/08/04(月) 01:36:05.80ID:7VAAh3An最終的にハードはポリゴンを表示するだけだ
0819デフォルトの名無しさん
2014/08/04(月) 01:56:22.64ID:BTc2ko+M結果が予測しづらかった
0820デフォルトの名無しさん
2014/08/04(月) 14:09:54.67ID:gZyph/pYこの演算子はXORってことでいいの? 0のXORってどういう意味?
0821デフォルトの名無しさん
2014/08/04(月) 14:42:58.66ID:rcks12Ahxorじゃなくてビット反転。第3引数はマスクだから、全ビット1を与えたくて0を反転している。
0822デフォルトの名無しさん
2014/08/04(月) 15:29:21.90ID:jHAt8bMePixarは曲面を頂点とピクセルが同じになるまで細分割してレンダリングしてるけど
ポリゴンをその途中の荒い段階と考えれば、本質的に何も変わらないぞ
言いたい事は、ラスタライズ対レイトレーシングみたいな事だろ
それだって、まだ全然ラスタライズのままだろうね
0823デフォルトの名無しさん
2014/08/04(月) 20:49:55.42ID:gZyph/pYでもそれなら1を入れとけばいいような
0824デフォルトの名無しさん
2014/08/04(月) 21:01:23.34ID:jzy7vsa50825デフォルトの名無しさん
2014/08/08(金) 10:00:44.33ID:cBl4jQ1Aどうして未だにzソートなんてやってるの?
まさか携帯電話向けの半端OpenGLなんて使っているの?
0826デフォルトの名無しさん
2014/08/08(金) 10:14:15.79ID:gW33htdT0827デフォルトの名無しさん
2014/08/08(金) 11:31:33.02ID:RlK/9wVDなんだ突然?Order Independent Transparencyって言いたいだけか
0828デフォルトの名無しさん
2014/08/08(金) 15:38:20.79ID:wTbpXbCc理由をいちいち聞かないと分からないほど無能なら、
やめた方がいいよ、向いてない。
0829デフォルトの名無しさん
2014/08/08(金) 16:13:11.02ID:bE0o6NOP0830デフォルトの名無しさん
2014/08/08(金) 16:33:48.08ID:aPdADbjs0831デフォルトの名無しさん
2014/08/08(金) 16:39:01.73ID:66xmWF2Qひとつ賢くなれたね
0832デフォルトの名無しさん
2014/08/08(金) 16:57:59.79ID:NYRFXe49人生毎日勉強
0833デフォルトの名無しさん
2014/08/09(土) 17:55:12.25ID:Gqzlt3k4メタボールとか中身が詰まった方向にいくべきだろう
0834デフォルトの名無しさん
2014/08/09(土) 18:19:31.41ID:l+UlL6r90835デフォルトの名無しさん
2014/08/09(土) 20:35:31.84ID:yKDmpr0a0836デフォルトの名無しさん
2014/08/09(土) 20:35:51.42ID:IH2dHWBB他人に労力を使わせる前にちょっと調べてから聞いてくれる?
0837デフォルトの名無しさん
2014/08/09(土) 21:12:36.12ID:b4riAJQP0838デフォルトの名無しさん
2014/08/10(日) 00:30:39.48ID:pD03iTBG0839デフォルトの名無しさん
2014/08/10(日) 00:46:32.16ID:KgnGRtjDアニメーションなどでは非多様体をうまく扱えるかも
液滴がくっついてひょうたんみたいに伸びた後分離するみたいな。
0840デフォルトの名無しさん
2014/08/10(日) 01:19:59.55ID:el3a8dJ8昔GPUが無い時代だと、何十万ポリゴンとかのシーンは表示も編集もできなかったけど
メタボールだとデータが少ないし表示は編集時には球だけだしとけばどうにかなるのでそこそこ使われたみたい
0841デフォルトの名無しさん
2014/08/10(日) 02:06:27.57ID:z9JQKyZDつうても表示は結局ポリゴンだが
0842デフォルトの名無しさん
2014/08/10(日) 03:16:21.65ID:j1OTynVEマジで
0843デフォルトの名無しさん
2014/08/12(火) 01:59:59.31ID:MbJloS4J0844デフォルトの名無しさん
2014/08/12(火) 04:12:15.63ID:3GePmWLc4.5の仕様
0845デフォルトの名無しさん
2014/08/12(火) 10:47:51.83ID:exMW2GAX0846デフォルトの名無しさん
2014/08/12(火) 13:28:15.96ID:SnV+473XDX11 emulation features
なんだこれw
座標系を変更する機能とか追加されるんだろうな
0847デフォルトの名無しさん
2014/08/12(火) 15:39:56.16ID:f8Kunc5R0848デフォルトの名無しさん
2014/08/12(火) 15:40:46.03ID:f8Kunc5R0849デフォルトの名無しさん
2014/08/13(水) 12:55:13.69ID:Bd7xMtighttp://seesaawiki.jp/w/mikk_ni3_92/d/%c4%ba%c5%c0%c7%db%ce%f3%3a%3aglDrawArrays_2
http://seesaawiki.jp/w/mikk_ni3_92/d/%c4%ba%c5%c0%c7%db%ce%f3%3a%3aglDrawElements_2
この2つの違いがわからない
法線があると結局同じサイズのデータがいるじゃん
0850デフォルトの名無しさん
2014/08/13(水) 14:05:14.59ID:bToXpGvGバインドするときとかは普通のint型でよかったくせになんなの・・・
0851デフォルトの名無しさん
2014/08/13(水) 14:16:58.71ID:+Il1Qeqk球とかなめらかな曲面を表現しようと思ったら法線も一緒になるような頂点になる
0852デフォルトの名無しさん
2014/08/13(水) 14:17:40.54ID:+Il1Qeqk何言ってるのかわからない
0853デフォルトの名無しさん
2014/08/13(水) 15:18:55.91ID:bToXpGvG0854デフォルトの名無しさん
2014/08/13(水) 15:34:44.09ID:3oIrbTNR0855デフォルトの名無しさん
2014/08/14(木) 21:09:51.52ID:gVvPyGBB4x4行列の「配列」を渡したい
GLSL側は mat4 変数名[ ]
となっている
Androidのjava(NDKじゃない)で
0856デフォルトの名無しさん
2014/08/14(木) 21:14:21.38ID:8EuqiR5k>java(NDKじゃない)で
>java(NDKじゃない)で
リフレイン
0857デフォルトの名無しさん
2014/08/14(木) 22:52:08.80ID:EcJA/eZWhttp://developer.android.com/reference/android/opengl/GLES20.html
普通に、このクラスのクラスメソッドである
static void glUniformMatrix4fv(int location, int count, boolean transpose, float[] value, int offset)
を使えばいいハズだが。
0858デフォルトの名無しさん
2014/08/14(木) 22:52:46.99ID:EcJA/eZW>>855 ね
0859デフォルトの名無しさん
2014/08/15(金) 01:34:58.73ID:c0r1uSnJ0860859
2014/08/15(金) 01:39:40.56ID:c0r1uSnJglfwやsdlの初期化の後なら成功した
0861855
2014/08/15(金) 09:40:04.77ID:rbpPJIVnありがとう。一次配列に移し変えないといけないんだ・・・・処理遅くなりそうだな
0862デフォルトの名無しさん
2014/08/15(金) 09:52:51.60ID:XpkA/r9f普段から44行列を16配列で持つようにすれば良い。
0863デフォルトの名無しさん
2014/08/15(金) 11:14:20.57ID:Spzuf6rs0864デフォルトの名無しさん
2014/08/16(土) 21:42:04.18ID:tJo/XMv1さっさとremoveしる
0865デフォルトの名無しさん
2014/08/16(土) 22:23:49.77ID:HsWLjWa10866デフォルトの名無しさん
2014/08/16(土) 22:31:48.30ID:gFPUlhC00867デフォルトの名無しさん
2014/08/17(日) 19:57:13.45ID:gihOGc3UglBufferDataで送ったデータって、glBindBufferで0入れてアンバインドしても、
またglBindBuffer呼べば使えるの?
そうだとしたらglBufferDataのメモリ容量限界ってどこよ?
0868デフォルトの名無しさん
2014/08/17(日) 20:09:05.91ID:/9bPs2vi容量などはglGetIntegervとか調べるべし
0869デフォルトの名無しさん
2014/08/17(日) 20:12:20.28ID:v00Bu8BkglBegin() 〜 glEnd() が古いって聞いたんだけど本当?ググってみたがよくわからなかった
0870デフォルトの名無しさん
2014/08/17(日) 20:21:09.23ID:3OAkF9Uq本当。
0871デフォルトの名無しさん
2014/08/17(日) 20:24:50.39ID:v00Bu8Bk0872デフォルトの名無しさん
2014/08/17(日) 20:37:01.23ID:3OAkF9Uq頂点の配列で描画 glDrawElements,glDrawArrayなど。
慣れてきたら頂点バッファオブジェクト(VBO)使うといい
上に出てるglBufferDataね
別にglBeginも使えないことはないから学習用にはいいとは思うけど。
0873デフォルトの名無しさん
2014/08/17(日) 20:43:18.21ID:v00Bu8Bkありがとう
0874デフォルトの名無しさん
2014/08/17(日) 20:49:08.63ID:VZQpFjQ70875デフォルトの名無しさん
2014/08/17(日) 20:57:10.66ID:3OAkF9UqDirect3Dとかで既に学んで来たとかで3DCGに慣れ親しんできたとかなら別だけども
0876デフォルトの名無しさん
2014/08/18(月) 00:04:26.26ID:b3lMnKxX無いならそっちからやって徐々に低レベル化していくべきだと思うんだけど
0877デフォルトの名無しさん
2014/08/18(月) 00:16:07.36ID:OF3XS1PR0878デフォルトの名無しさん
2014/08/18(月) 08:02:00.27ID:hOGPcHcB→後々Bを習いました
→その結果AをBで置き換える必要が出てきました
ってなるとめんどいから最初からB習った方がいい
0879デフォルトの名無しさん
2014/08/18(月) 08:28:54.19ID:1WWnk53J0880デフォルトの名無しさん
2014/08/18(月) 09:32:06.85ID:gPqwY9SBOpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3
OpenGL 4.0 シェーディング言語 -実例で覚えるGLSLプログラミング
とかでいいと思うんだが
0881デフォルトの名無しさん
2014/08/18(月) 11:25:52.44ID:K2s7yxeA0882デフォルトの名無しさん
2014/08/18(月) 22:32:01.71ID:DYC0UyHkAndroid4.3以上ならハードウェアが対応していればES3.0が使えるらしいが、まあ確かに普及してないよな
2.0は何処でも使えるでしょ
HTL22だけどKitKatのROM焼いたらES3.0が使える
http://developer.android.com/guide/topics/graphics/opengl.html
0883デフォルトの名無しさん
2014/08/18(月) 23:32:08.56ID:DekYufYJattribute や varying のが分かりやすいだが…
0884デフォルトの名無しさん
2014/08/19(火) 00:52:49.49ID:wV7pUP8zhttp://sourceforge.jp/magazine/14/08/13/095100
> 米MicrosoftのThe Khronos Groupヘの加入も明らかになった。
モバイルで勢力を拡大しているOpenGLを、遂に潰しにきたか
0885デフォルトの名無しさん
2014/08/19(火) 01:53:34.62ID:wvn9p5i80886デフォルトの名無しさん
2014/08/19(火) 05:16:02.22ID:yzTPzZsWprev/next…は流石に変かも知れんが。
でもまあ、なるほどね、パイプラインの前後に対しての話って考え方なのか
0887デフォルトの名無しさん
2014/08/19(火) 07:59:14.06ID:S2an9Tuw0888デフォルトの名無しさん
2014/08/19(火) 11:27:44.39ID:S2an9Tuw書いた場合、コメント文ごと読み込んでコンパイルしても大丈夫?
0889デフォルトの名無しさん
2014/08/19(火) 12:46:24.18ID:KNMOWTQW0890デフォルトの名無しさん
2014/08/19(火) 18:04:12.51ID:6KAEzDDR激しく同意見。
頂点シェーダーのinとフラグメントシェーダーのinはまったく別物だろ
varying変数という明示的でわかりやすいものがあったのに
なぜinにしたし
0891デフォルトの名無しさん
2014/08/20(水) 20:22:15.74ID:pFcTwshW0892デフォルトの名無しさん
2014/08/20(水) 20:28:47.67ID:YTuxoJAp0893デフォルトの名無しさん
2014/08/20(水) 20:32:29.17ID:ZgMOW7JT意味のある名前をつけるよりも
そのステージへのin/outだってことで統一したほうが
早いってなっただけでしょ
0894デフォルトの名無しさん
2014/08/22(金) 14:58:27.30ID:SDBQFK+Hlittleendian固定ってことは無いよね?
glTFのフォーマット仕様みててバイナリーデータのbyte orderの指定が無いから気になった
0895デフォルトの名無しさん
2014/08/22(金) 20:56:49.69ID:8b5jxKZHたまたまシェーダーというくくりで一緒にされてるけど別のプログラムだし
0896デフォルトの名無しさん
2014/08/24(日) 18:26:49.81ID:treW2kWSCanvasのアクセラレーションも古いAdrenoでは無効
設定で有効化出来るがそれでも描画が遅く感じた
古い機種だと遅くなる運命なのか
この辺の機種は切り捨てないとAndroidでWebGLは使えんな
0897デフォルトの名無しさん
2014/08/25(月) 11:45:36.16ID:83AqHVDwAndroid版Firefoxで試したか?
AndroidのWebGLはFirefoxの方が実装が進んでると思う
0898デフォルトの名無しさん
2014/08/25(月) 15:23:17.65ID:8yy0NSkWFirefoxだと動作もせず落ちたけど
http://hellorun.helloenjoy.com
0899デフォルトの名無しさん
2014/08/25(月) 23:05:50.21ID:Gut43Z9a例えば、1枚のテクスチャの全頂点に共通する変数(モザイク処理のフラグなど)は、vboで送った方が効率がいいんでしょうか?
0900デフォルトの名無しさん
2014/08/25(月) 23:07:38.64ID:NqK9mfwG0901デフォルトの名無しさん
2014/08/25(月) 23:15:08.86ID:Gut43Z9aテクスチャ1枚の中で頂点ごとに変わらない要素(ambientカラーや、エフェクトのフラグなど)をvboで全頂点同じ値で渡していたのですが、
これをuniformに変えたところ急に動きが遅くなったためです。
vboよりもglUniform計のコマンドの方が遅いということなのかと思いました。
テクスチャごとに異なる値でも、テクスチャ内で共通の値はuniformを使うのが普通で、
何か別のところにミスがあるということでしょうか?
0902デフォルトの名無しさん
2014/08/25(月) 23:22:19.81ID:NqK9mfwG遅くなるというのが考えにくくて、ミスがありそうだけど
見てみないとなんとも言えない
0903デフォルトの名無しさん
2014/08/25(月) 23:39:41.59ID:Gut43Z9aありがとうございます。
//vsh
void main()
{
vtexcoord = texcoord;
y = position.y;
x = position.x;
z = position.z;
vcolor = color;
eyenormal = normalize(normalMatrix*normal);
gl_Position = modelViewProjectionMatrix * position;
}
//fsh
void main()
{
gl_FragColor = texture2D(s_texture0, vec2(vtexcoord.x, vtexcoord.y ) ) * vcolor;
}
ちょっといじっている途中なので無駄な変数が残っていたりしますが、この程度です。
(フラグ関係を1つのシェーダで処理せず、エフェクトによって処理を切り替える方式に移行している途中なのでこのシェーダには
モザイクなどのフラグは出てきませんが、エフェクトなしで一番使用頻度の高いシェーダです)
uniformをfshに直接渡さず、vshに渡してからvaryingでfshに渡さないといけない、とかいうことはありますでしょうか。
0904デフォルトの名無しさん
2014/08/25(月) 23:58:59.76ID:ksmxv1nf0905デフォルトの名無しさん
2014/08/26(火) 02:13:07.64ID:TnOVJndh俺らにデバッグさせるんじゃなくて、問題の切り分けのコード書いて、それから質問してくれ。
0906デフォルトの名無しさん
2014/08/27(水) 22:16:48.53ID:BTT7E8g6多少は遅くなるだろうからピュアなOpenGLが良いのに
ChromeはOpenGLを使うよう指定しても正常に起動しない
FirefoxはOpenGLで動くけど、Direct2Dで最終的に各レイヤーを合成しているからか、ANGLEによる変換ありの時より遅くなる
IEはもちろんそんな設定はない
0907デフォルトの名無しさん
2014/08/27(水) 22:19:28.56ID:jwAkJLhC0908デフォルトの名無しさん
2014/08/27(水) 22:56:32.09ID:Qk/ibaY00909デフォルトの名無しさん
2014/08/27(水) 23:08:56.29ID:DcG46rkAそれで済むなら各ベンダーがOpenGLのドライバを提供する必要ないんだけどそうではないよね?
0910デフォルトの名無しさん
2014/08/28(木) 00:31:50.77ID:fhP7eceb遅くはならない
GPUはなんだ?
0911デフォルトの名無しさん
2014/08/28(木) 15:19:41.88ID:xakPUzfG0912デフォルトの名無しさん
2014/08/28(木) 16:19:21.17ID:a/ASbfe/0913デフォルトの名無しさん
2014/08/28(木) 21:57:35.85ID:6Zv9wYlI結局ベンダーがICDドライバを提供すればそっちを使うことになった
0914デフォルトの名無しさん
2014/08/31(日) 14:23:12.48ID:zA7hqBm7一次元配列のfloat[16]を作るのはいいとして、
何番目がどの行、列に対応しているんだ。
0915デフォルトの名無しさん
2014/08/31(日) 14:28:54.93ID:zA7hqBm7m = {_
0, 1, 2, 3,
4, 5, 6, 7
8, 9, 10, 11,
12, 13, 14, 15
}
で、処理されるんだよね?
0916デフォルトの名無しさん
2014/08/31(日) 14:30:37.45ID:zA7hqBm7glMatrixf(m);
としたらどう掛けられている?
0917デフォルトの名無しさん
2014/08/31(日) 14:35:41.23ID:zA7hqBm7m = {_
0, 1, 2, 3,
4, 5, 6, 7
8, 9, 10, 11,
12, 13, 14, 15
}
で、OpenGLでは
m = {
0, 4, 8, 12,
1, 5, 9, 13,
2, 6, 10, 14,
3, 7, 11, 15
}
って書いてるから、一次元配列もこの並び順で書かないといけないんじゃないの?
0918デフォルトの名無しさん
2014/08/31(日) 15:34:28.56ID:3KU2lVQJ0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15
こうなるのが基本なんだけれど、掛ける順序も
d3d: v*M(SRT)*V*P = v'
GL: v' = P*V*M(TRS)*v
と真逆が基本なお陰で、実は両者で同じ添字の値が表す意味は変わらなかったりする
(traslateのxyzが12,13,14だとかね)
座標系とか、気にすべきことは沢山あるのは確かだけどね
ひとつの行列データの並べ方に限っては「同じようなもの」ではある
0919デフォルトの名無しさん
2014/08/31(日) 15:34:48.68ID:OMM4rPHWByteBuffer.allocateDirectの他にglGenBuffersを使う方法が書いてある所もありますが、なにが違うのでしょうか
0920デフォルトの名無しさん
2014/08/31(日) 16:04:38.28ID:zA7hqBm7でも、glMatrixfとか、glLoadMatrixに渡している配列を見ると、DirectXと同じ並びなんだよね。
渡す側が転置で渡す方がしっくりくるのに。
OpenGLが内部で転置させてるのか、添え字の取り出し方を転置させているのか・・・・。
0921919
2014/08/31(日) 16:21:45.16ID:OMM4rPHWバッファオブジェクトというのを生成すれば高速に描画できるんですね
0922デフォルトの名無しさん
2014/08/31(日) 16:50:30.61ID:zrOhjVJY同じ並びで正常。特に転置する必要は無い
0923デフォルトの名無しさん
2014/08/31(日) 17:01:09.56ID:zA7hqBm7って、m1 x m2 = resultM なの?
m2 x m1 = resultMなの?
0924デフォルトの名無しさん
2014/08/31(日) 17:27:38.22ID:ipF4eAwT>>918をよく読んで。
Direct3Dでは頂点ベクトルは横ベクトルで左から掛けるが、OpenGLでは縦ベクトルで右から掛ける
vt*MtもM*vも要素だけ見れば一緒でしょ?
0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15
と配列に要素を入れた場合は、m1 x m2 = resultM
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
と配列に要素を入れた場合は、全部転地されてしまっているので、m2 x m1 = resultMと見ることができる。
けど、OpenGLでは大抵のライブラリは前者の並び順で配列に要素を入れてるという前提に立ってると思うから、前者の入れ方を使ったほうが混乱しないんじゃないかな
0925デフォルトの名無しさん
2014/08/31(日) 18:13:18.22ID:zA7hqBm7あ、ごめん、そうじゃなくて、メソッドの掛ける順番の仕様がわからなくて聞いたんだ
OpenGLで、内部的にどっちの順番で掛けてるのか?ってこと。
前者の並び方でも後者の並び方でも、行列の掛け算なんだから、
m1 x m2 か m2 x m1のどっちかで仕様が決まってるでしょ?
それがどっちか聞きたいんだ。
0926デフォルトの名無しさん
2014/08/31(日) 18:59:31.90ID:v25oQIh2OpenGL1からある関数の話だな?
あの辺の行列関数は、glMatrixMode()で指定した行列に対して右へ右へと掛けていく
んでglVertex*()を呼んだ際に、その頂点が一番右に置かれて計算される
感覚的には、最後に呼んだ関数から順に適用する感じがするかも知れんね
でも、その仕様じゃなかったらビュー行列何回使うんだって話になるw
0927デフォルトの名無しさん
2014/08/31(日) 19:20:09.20ID:ipF4eAwTいやだから、前者の並び方と見ればm1xm2で、後者の並び方と見ればm2xm1 ただし後者の並び方と捉えるのは混乱が起こるのでおすすめしない
GLのリファレンス的には前者の並び方で、m1xm2というのが正解になる
0928デフォルトの名無しさん
2014/09/01(月) 09:56:11.28ID:9ERuifEkディスプレイのサイズみたいな基準がないのに-1とか100とか言われても、1増えたらどれだけ変化するのかもわからないと思うんですが
0929デフォルトの名無しさん
2014/09/01(月) 12:21:12.60ID:Y3PD7Uveそりゃもちろんワールド座標基準だよ
0930デフォルトの名無しさん
2014/09/01(月) 12:30:53.12ID:Y3PD7Uveなんか、書く順とは逆に適用されていきますとかわけわからないよね。
なんで列オーダーにしたんだろう・・・。
DirectXの行列計算順序が感覚的にしっくりくるし自然。
>>927
m1 x m2 ですか。ありがとう。
並び方をどっちで渡そうが、メソッドはとにかく行列の計算順序(m1の行 x m2 の列)でm1 x m2で演算して結果を出すんじゃないの?
0931デフォルトの名無しさん
2014/09/01(月) 13:18:43.16ID:PgC9Ax39> DirectXの行列計算順序が感覚的にしっくりくるし自然。
OpenGLとか数学の本(高校教科書含む)を一切読んだ事ないな?
左から掛ける方が不自然だ
俺が書いた>>668を1回読んでどこかコピっておけ
0932デフォルトの名無しさん
2014/09/01(月) 13:25:09.10ID:Y3PD7Uveだって頂点に変換行列をかけて動かすんだから
v(頂点) * m(変換行列) = v' の方が自然だろう・・・。
m * v だと逆じゃね?ってなる
0933デフォルトの名無しさん
2014/09/01(月) 13:27:54.13ID:hNIkQbhJ0934デフォルトの名無しさん
2014/09/01(月) 13:29:33.82ID:srwG2aQM0935デフォルトの名無しさん
2014/09/01(月) 13:31:58.31ID:PgC9Ax39線形代数って↑が基本だと教わってるし、x * a = y なんて書かれたら気持ち悪いし
計算途中にしか見えないよ…
0936デフォルトの名無しさん
2014/09/01(月) 13:43:26.10ID:Y3PD7Uve0937デフォルトの名無しさん
2014/09/01(月) 13:45:18.79ID:Y3PD7Uve0938デフォルトの名無しさん
2014/09/01(月) 13:47:38.64ID:YOdvfabOお前学校で回転行列とか見たこと無いの? 無いなら仕方がないか
0939デフォルトの名無しさん
2014/09/01(月) 14:08:37.64ID:PgC9Ax39別にbがある無しはこの際どうでもいい
行列も1次変換なんだから同じだろ。何で別に考えるんだよ
0940デフォルトの名無しさん
2014/09/01(月) 15:23:42.50ID:M8Jh9ISi(あっても良いとは思うけど)
0941デフォルトの名無しさん
2014/09/01(月) 15:34:52.19ID:PgC9Ax39もう違和感とか曖昧な表現はいいから
具体的に右から掛けると何がおかしいか言え
0942デフォルトの名無しさん
2014/09/01(月) 15:42:55.21ID:IHc5CjDP0943デフォルトの名無しさん
2014/09/01(月) 15:54:41.94ID:PgC9Ax39|1 2 3|
|4 5 6|
|7 8 9|
と書いたら
float m[] = {
1, 4, 7,
2, 5, 8,
3, 6, 9,
};
と書く事が前提。それを見たまんま転置して書いて結果がおかしいと言われても知らん
0944デフォルトの名無しさん
2014/09/01(月) 16:01:04.18ID:PgC9Ax39さらに突っ込ましてもらうけど、左から掛けたところでv'は左に書かないと駄目だ
v' = v(頂点) * m(変換行列) ってなる
↓ここ見れば全部そうなっている。そして、かなり気持ち悪い…
http://msdn.microsoft.com/ja-jp/library/bb206269%28v=vs.85%29.aspx
0945デフォルトの名無しさん
2014/09/01(月) 17:13:01.94ID:Y3PD7Uve等式のイコールを右に描こうが左に描こうが意味は同じなんだよ。
別にそこはどうでもよかったんだが・・・。
数学やってるんじゃなくて、プログラムやってるんだから、
記述順に実行されて行くほうがわかりやすい。
DirectXなら全部行オーダーで、変換行列も呼び出した順に掛けられていくから
なんの混乱もないのに・・・・。
0946デフォルトの名無しさん
2014/09/01(月) 17:23:47.01ID:Y3PD7UveglLookAt()
glTranspose()
glScale()
glRotate()
↑この時点ではまだ適用されてません (はぁ?)
glDrawArray() ←ここではじめて逆順に適用されます (はぁ?)
DirectXなら
d3dRotate();
d3dScale() ← 回転x拡大の行列がここでできる
d3dTranspose() ←回転x拡大x移動の行列がここでできる
LookAt() ←MV行列がここでできる
draw() ← MV行列を適用
普通の数式演算そのままでわかりやすい!
0947デフォルトの名無しさん
2014/09/01(月) 17:25:54.63ID:YOdvfabOお前は一体何を言ってるんだ
0949デフォルトの名無しさん
2014/09/01(月) 17:49:40.75ID:IHc5CjDP全てで適用するより設定全て済ませてから1回適用する方がよくね
0950デフォルトの名無しさん
2014/09/01(月) 18:03:54.80ID:PgC9Ax39まだ勘違いしてるようだが、行列は右から左に計算する方法しか定義されてない
v(頂点) * m(変換行列)
と書いたからといって、行列が左から右に計算されている訳ではない
そんな計算方法は無い
計算は右から左に行なわれるから、イコールは左に書くんだ
単に掛ける方向が違うだけで、計算は必ず右から左に定義されている
だったら右から掛けた方が自然に決まってる
0951デフォルトの名無しさん
2014/09/01(月) 18:12:18.18ID:Y3PD7Uve何を言いたいのかよくわからないが、
http://www.sist.ac.jp/~kanakubo/research/hosoku/gyoretu.html
イコールは右に書いてますが・・・
A X Bなら AにBを掛ける (Aの列とBの行をかける)
B X Aなら BにAを掛ける (Bの列とAの行をかける)
上と下の式は計算結果が異なる。
これだけでしょ。右から左とか意味わからん。
OpenGLの内部処理の話?
0952デフォルトの名無しさん
2014/09/01(月) 18:38:35.47ID:PgC9Ax39> イコールは右に書いてますが・・・
あっそ、何で右に書いてるか分からんが稀な例だし、変だな
> これだけでしょ。右から左とか意味わからん。
駄目だ理解してないんだな…
じゃぁ>>951のサイトは
・列ベクトル(OpenGL:右から掛ける)
・行ベクトル(DirectX:左から掛ける)
のどっちか言ってみ?
0953デフォルトの名無しさん
2014/09/01(月) 18:45:20.11ID:Y3PD7Uveプログラムなら代入のイコールは左に書かなきゃいけないが、数学でイコールなんてどっちで書いてもいいでしょ。
イコールは左と右が等価ってことなんだから。そんなこだわり聞いたことない。
>>951のサイトは
ベクトルが縦になってるから列ベクトルでしょう。
0954デフォルトの名無しさん
2014/09/01(月) 18:49:08.09ID:AuKDuIgbXの転置をXtと表すと
A x B と
( Bt x At )t
が同じなのはわかる?
行ベクトルの転置は列ベクトルだとすると...
つかわかってないのは君だけなのに、なんでそんな喧嘩腰なんだ
0955デフォルトの名無しさん
2014/09/01(月) 18:54:53.70ID:PgC9Ax39> イコールは左と右が等価ってことなんだから。そんなこだわり聞いたことない。
それはお前が無学だからだよ…
そもそもの発端は
> v(頂点) * m(変換行列) = v' の方が自然だろう・・・。
と、行列計算が左から右へ計算されているような事を言うから、
それは不自然に感じると言ってるだけだ
もはや行列の定義とか無視してたら話にならんよ
0956デフォルトの名無しさん
2014/09/01(月) 18:55:37.20ID:IHc5CjDP式 = X
Xはこういう式で求められました
X = 式
最近の小学校は100円のリンゴ5個勝った合計求める時
○ 100 * 5
× 5 * 100
って解答になるらしいな
0957デフォルトの名無しさん
2014/09/01(月) 19:13:08.20ID:PgC9Ax39> 式の結果Xを求める
> Xはこういう式で求められました
同じ事言ってるぞ…その微妙な日本語の違いを数学に持ち込むのかよ…
0958デフォルトの名無しさん
2014/09/01(月) 19:23:25.54ID:IHc5CjDP式 = X
Xの元の式は何
X = 式
どうでもいいやんけって言われるのもわかる
0959デフォルトの名無しさん
2014/09/01(月) 19:24:45.00ID:Y3PD7Uveそういう風に書けってフォーマット指定がされてるでもない限り、どっちでも正解。
0960デフォルトの名無しさん
2014/09/01(月) 19:28:14.46ID:Y3PD7UveA x B = ( Bt x At )t
それはわかるけど、それと、 計算は右から左しかない がどう関係あるのか意味不明。
何が右で何が左なんだ。
0961デフォルトの名無しさん
2014/09/01(月) 19:28:40.80ID:pppp+tIw間違いではない
0963954
2014/09/01(月) 19:38:47.91ID:Y3PD7Uve周知だからわざわざ言ってなかったんだけど、そこに引っかかってたのか?
0964デフォルトの名無しさん
2014/09/01(月) 19:39:54.75ID:PgC9Ax39わかった、もはやイコールの左右はどうでもいいや
> それはわかるけど、それと、 計算は右から左しかない がどう関係あるのか意味不明。
|1 2 3|
|1 2 3| * |4 5 6| (多分ずれてるはず…)
|7 8 9|
を計算する時、どうやって計算するか知ってんの?
0965デフォルトの名無しさん
2014/09/01(月) 19:46:31.84ID:Y3PD7Uveえ、それ計算できないでしょ、逆ならできるけど。
左の列数と右の行数が一緒じゃないと掛けられないよ
0966デフォルトの名無しさん
2014/09/01(月) 19:53:38.06ID:PgC9Ax39お前が散々言ってた事だろwww
1行3列×3行3列
×の両隣が一緒なら掛けられる、覚えとけ
0967デフォルトの名無しさん
2014/09/01(月) 19:56:37.94ID:PgC9Ax391行3列
0969デフォルトの名無しさん
2014/09/01(月) 20:05:51.22ID:PgC9Ax39専ブラじゃないのかよ…
|1 2 3|
|1 2 3| * |4 5 6|
|7 8 9|
これ
> DirectXの行列計算順序が感覚的にしっくりくるし自然。
↑お前の感覚なんてどうでもいいが、自然と言ってるのはおかしいと言ってるんだ
0970デフォルトの名無しさん
2014/09/01(月) 20:08:49.17ID:AuKDuIgbOpenGLとDirectXが違ってどっかで転置操作してるってのが質問なんじゃないの?
v を列ベクトル、Vを行ベクトルとすると
OpenGLは v' = M * v
DirectXは V = V * M
v' = M * v の 両辺を転置すると
vt = ( M * v )t
V = V * Mt
で同じ式。
CPUはGPUに 頂点 v[4] と 行列 M[16]を渡します
頂点v[4]はベクトルだからvでもVでも同じ値、
MとMtは違うけど、配列が行/列優先によりM[16]も同じ値になります
つまり
>>946のglDrawArrayとDirectXのdraw()はGPUから見ると同じものを渡されてるので、後は頂点シェーダーで掛け算するだけです
どこでも逆順に適用とかされません
0971デフォルトの名無しさん
2014/09/01(月) 20:09:52.65ID:Y3PD7Uveだから自然に思える おかしくないだろ。
0972デフォルトの名無しさん
2014/09/01(月) 20:10:14.60ID:IHc5CjDP2 3 4 d e f =
g h i
2a + 3d + 4g
2b + 3e + 4h
2g + 3h + 4i
じゃないの
0973デフォルトの名無しさん
2014/09/01(月) 20:17:15.79ID:BjqFO3jg多分、その、本来とか自然は思い込み
DirectX使ってきたからそれで思想が最適化されただけ
0974デフォルトの名無しさん
2014/09/01(月) 20:25:58.14ID:PgC9Ax39また意味不明な事を…それはOpenGLでも一緒だ
M = T * R * S * V (OpenGL)
V * S * R * T = M (DirectX:イコールはお前の言う右にしたよ)
だから、結果は一緒なんだよ
ただ、V * S は行列の定義で右から左に計算するんだ
だから、数学の教科書ではそんな風に書かないから不自然と言ってるんだよ
OpenGLの書き方が自然になる
0975デフォルトの名無しさん
2014/09/01(月) 20:30:19.70ID:Y3PD7Uveああ、これもOpenGLの本とかサイトの解説に書かれていることなんだけど、
逆順に適用ってのは、
OpenGLでは、移動、回転、拡大の順に記述するけど、
実際の変換されたオブジェクトを見ると、
ワールド座標で見て、拡大、回転、移動の順で適用した形状になってるから、
それで、「書いた順で形状が変わるわけじゃない」という意味で「逆順で適用される」って説明してるんだよね。
プログラマ的には、コーディングのシーケンス順序で変換が物体に適用される方が、プログラマブルで自然に感じると思うんだけど。
そういう意味で、DirectXの方が自然に感じると言ったんだ。
まあ、ただのグチだけどね。
いっつも主語があいまいだから、人によっては誤解が生まれるところがクソだと思うね。
0976デフォルトの名無しさん
2014/09/01(月) 20:31:47.37ID:PgC9Ax39ソースコードには、ベクトルは行ベクトルで書かざるを得ないから
全部行ベクトルにすれば、行列の表示とソース上での表示が一致するという考えがある
俺はソースと一致してないと不自然に感じる(数学的には不自然だが)と、
そう言えばいいんだよ
無理解によって、掛ける方向がどうこう言いだすからおかしな事になるんだ
0977デフォルトの名無しさん
2014/09/01(月) 20:34:51.74ID:PgC9Ax39だから、見掛け上、掛ける方向は違ってもメモリ内と結果は一緒なんだっつうの!!
0978デフォルトの名無しさん
2014/09/01(月) 20:35:53.66ID:Y3PD7Uveうん、だから、プログラム制御とあわせてよ、気持ち悪いからって話。
0979デフォルトの名無しさん
2014/09/01(月) 20:36:05.96ID:AuKDuIgbここはOpenGLスレだから、どっちが自然かって言われたら断然OpenGLなんだよねー
同じ場所でクルクル回るのに、どうして毎回移動しないといけないのー。みたいな
glPushMatrix glPopMatrix超べんりー
つかどうせD3DXMatrixMultiplyとかで自分で掛け算してんだから、どっちが逆とかないんじゃねの
>>972
× なんで答えが列ベクトルになっちゃうんだよw
0980デフォルトの名無しさん
2014/09/01(月) 20:40:42.59ID:Y3PD7Uve育った環境の問題だね。
0981デフォルトの名無しさん
2014/09/01(月) 20:44:11.42ID:BjqFO3jg0982デフォルトの名無しさん
2014/09/01(月) 20:45:04.50ID:PgC9Ax39> つかどうせD3DXMatrixMultiplyとかで自分で掛け算してんだから、どっちが逆とかないんじゃねの
いや、引き数の並びの問題がある
D3DXMatrixMultiply と同じOpenGLのAPIが無いから単純に比較が出来ないが、
引き数の並びが逆になるから、行列演算ライブラリを使う時は気を付ける必要がある
0983デフォルトの名無しさん
2014/09/01(月) 20:48:36.89ID:AuKDuIgbM = T
M = M * R
M = M * S
でも
M = S
M = R * M
M = T * M
でも好きにすりゃいいだろうって話
0984デフォルトの名無しさん
2014/09/01(月) 20:52:54.78ID:PgC9Ax39D3DXMatrixMultiply(OUT, M1, M2)
> 結果は、トランスフォーム M1 の後のトランスフォーム M2 を表している (Out = M1 * M2)。
これはDirectXが左から掛ける事を前提にしてるからだ
勘違いして右から掛けると思ってる奴は
D3DXMatrixMultiply(OUT, M2, M1)
としてしまい、ハマる事になる
もう疲れた…
0985デフォルトの名無しさん
2014/09/01(月) 20:55:35.33ID:PgC9Ax39MatrixMultiply(OUT, M2, M1)
だな
0986デフォルトの名無しさん
2014/09/01(月) 20:56:32.67ID:Y3PD7UveglRotate();
glScale();
↑関数が逆順に結果反映されるのがプログラマ的に気持ち悪い。
こういうこと。
0987デフォルトの名無しさん
2014/09/01(月) 20:57:29.46ID:AuKDuIgbD3DXMatrixMultiply(OUT, M1, M2);
D3DXMatrixMultiply(OUT, OUT, M3);
と
D3DXMatrixMultiply(OUT, M2, M3);
D3DXMatrixMultiply(OUT, M1, OUT);
は同じじゃないのって言ったのだが
0988デフォルトの名無しさん
2014/09/01(月) 21:00:00.99ID:BjqFO3jg逆だと思うじゃん?でも行列って結合法則
(AB)C = A(BC)
だからどっちも同じじゃん?
0989デフォルトの名無しさん
2014/09/01(月) 21:04:05.20ID:PgC9Ax39> ↑関数が逆順に結果反映されるのがプログラマ的に気持ち悪い。
違う違う…それはアフィン変換の性質の問題でOpenGL、DirectX関係無い
>>987
それは同じだが、結局ずっと左から掛けてるだけだぞ
まとめて左から、1個ずつ左からの違いだ
0990デフォルトの名無しさん
2014/09/01(月) 21:23:01.85ID:Y3PD7Uveって概念がよくわからなかったけど、
4x4行列にベクトルを右から掛けたければ列ベクトルにしないと掛けられない
4x4行列にベクトルを左から掛けたければ行ベクトルにしないと掛けられない
ってところが出発点なのかな?
0991デフォルトの名無しさん
2014/09/01(月) 21:32:48.89ID:AuKDuIgb0992デフォルトの名無しさん
2014/09/01(月) 21:40:13.35ID:Y3PD7UveOpenGLは左に掛けていくっていう言い方ならわかるんだけどね。
0993デフォルトの名無しさん
2014/09/01(月) 21:47:21.93ID:4/+EiQVNそれを親モデルとして、子モデル、孫モデルの描画まで考えて書くと逆順の理由が解ると思う
0994デフォルトの名無しさん
2014/09/01(月) 21:48:05.93ID:Y3PD7Uveあくまで書き足していくイメージがってこと。
0995デフォルトの名無しさん
2014/09/01(月) 21:49:14.10ID:4/+EiQVND3DXだって親から順にも書けるけどな。
システム側でなく、アプリ側に持たせたから順序が自由になった。
その分、アプリ側で管理する情報が増えてるけどね。
0996デフォルトの名無しさん
2014/09/01(月) 22:13:11.21ID:Y3PD7Uveいや、別に逆にしなくても親子計算はできるし・・・。
列オーダーにしたから逆にしないとしょうがないってだけでしょ。
>>995
DirectX11あたりで色々自由度上がったみたいだね。
0997デフォルトの名無しさん
2014/09/01(月) 22:16:18.63ID:AyKprSXJ0998デフォルトの名無しさん
2014/09/01(月) 22:24:40.48ID:Y3PD7Uve0999デフォルトの名無しさん
2014/09/01(月) 22:30:44.48ID:AyKprSXJ1000デフォルトの名無しさん
2014/09/01(月) 22:36:27.04ID:pppp+tIw10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。