1 :
デフォルトの名無しさん :
2006/02/27(月) 19:09:43
1によるテンプレは以上。追加も歓迎します。
>>1 乙
前スレの画像ビューア質問者ですが
別機でのテスト結果を報告です
別機では正常に倍率変更できました
ただその機だとあまり大きい画像をテクスチャにしようとするとエラーがでることが判明しました
あと描画もかなり遅い
表示されていない画面域の描画も実際には行われているようです
限られた環境でしか動かないものを作ってもおもしろくないので
テクスチャもウィンドウサイズによる倍率変更も選択からはずします
OpenGLで画像ビューアやろうなんてのがそもそもの間違いなんだよ低能 ウザイからさっさと消えろ
8 :
デフォルトの名無しさん :2006/02/27(月) 19:37:47
そうは思いません アルファ演算とかGDIではとても遅い処理を数ミリ秒でやってくれるGLは十分に価値があります しかもほぼクロスプラットフォームですしね わからないならわからないと言う勇気も大切ですよ?
10 :
デフォルトの名無しさん :2006/02/27(月) 19:45:01
GLSLひいてはOpenGLそれ自体を牽引していた3Dlabsが死亡した今 誰が好き好んで腰の重いOpenGLの面倒なんか見るんだよ(プププププププ 資本主義の世界じゃ老体は死体も同然(プププププププ WindowsVistaではケツに敷かれてパフォーマンス大幅低下(プププププププ 誰がどう見てもOpenGLは潮時なんだよ(プププププププ 現にかつてOpenGLで名を馳せたプログラマの数々がDirect3Dに移行(プププププププ OpenGL、終わったな(プププププププ
11 :
デフォルトの名無しさん :2006/02/27(月) 19:46:28
>>9 OpenGL対応のグラフィックスカードか、そうでないかで、
パフォーマンスは全然違う。
あと、色数もかなり影響する。
結果も多少ちがう。ピクセルを人間が見ても分からないレベルだろうが、GPUがバグっていたりすると分かったりする。(笑)
>わからないならわからないと言う勇気も大切ですよ? 何でお前「わからない」連中しかいないこのスレで質問なんかしてんの? つかこのスレはお前と同じ低能学生と底辺社会人しかいねーが? 馬鹿同士なんちゃって議論してる暇があったら少しはその弱い頭絞って自分で考えろ
OpenGLで画像ビューア is 無駄な努力
14 :
デフォルトの名無しさん :2006/02/27(月) 19:58:52
>>9 よ
OpenGLはいい。しかし、用途やツールは選べ。
Windowsに依存しないポータブルなコードを書けば、きっといいことある。
覇王MSの2ch犬はほおっておけ。己の道をいけ。
Firefoxがすでにcairoへ移行しつつあるのに何が終了なんだか。
低能Linux/Mac信者必死だなwww NVもATIもLinuxなんか歯牙にも掛けてねーよwww Linux/MacでGPUの機能をフルに活用したアプリがいくつあるのやらwww Linux/Macはソフトウェアレンダリングがお似合いwww まさに豚に真珠www Windowsこそ最先端かつ王道
NVもATIも技術企業 技術革新によって利益を創出している すなわち 技 術 革 新 の 必 要 無 い 用 途 に 投 資 は し な い ま、Linux/Mac信者は社会主義者だからこの本質は理解できねーだろうがwww
>>1 の禁止事項を読んでない莫迦者がいるようだな。
>Firefoxがすでにcairoへ移行しつつあるのに何が終了なんだか。 まさに社会主義Linux/Mac信者の典型 そりゃWebブラウザなんざOpenGL1.2の機能がありゃ十分だから 現状に甘んじる社会主義者には「何が終了なんだか」と感じるだろうな しかしお前みたいな低能には関知し得ない最先端の3D技術の世界では 技術革新の遅いOpenGLは既に死に体なんだよwww
禁止事項?馬鹿が。 そんなもんに何ら法的拘束力は無い。
結論: ∴(最先端) = WindowsVista + Direct3D 10 ∴(底辺) = Linux + OpenGL NV/ATIのドライバ開発状況を見れば一目瞭然
24 :
デフォルトの名無しさん :2006/02/27(月) 20:37:19
WindowsとDirectXは夢の組み合わせ・最強タッグなのだッ!!!!!!!!!!!!!!!!!
25 :
デフォルトの名無しさん :2006/02/27(月) 20:46:10
>>WindowsとDirectXは夢の組み合わせ 最悪だ・・・
Vista登場以後、PC上からOpenGLは駆逐される ↓ IHV/ISVに見放されたOpenGLは技術革新が停止 ↓ OpenGLが唯一の手段であるLinux/Macの3Dは退廃 自分が陸に上がった魚だと知らない哀れなLinux/Mac信者たち 酸欠になり死の瀬戸際に立たされたまさにその時 奴らは我が偉大なるMS帝国に跪き、愚かにも助けを乞うこととなるのだ... MUHAHAHAHAHA!!!!!!!
しかし我がMS帝国に慈悲は無用だ! 死にたくなければ今からでも遅くは無い Linux/Mac信者は我がMS帝国の臣民となるのだ それを拒否する者に訪れるもの それは死 今から首を洗って待っておくがよい... MUHAHAHAHAHA!!!!!!!
我がMS帝国に光あれッ!!!!!!!!!!!!!!!!!!!
冫─' ~  ̄´^-、 / 丶 / ノ、 / /ヽ丿彡彡彡彡彡ヽヽ | 丿 ミ | 彡 ____ ____ ミ/ ゝ_//| |⌒| |ヽゞ |tゝ \__/_ \__/ | | ヽノ /\_/\ |ノ ゝ /ヽ───‐ヽ / /|ヽ ヽ──' / / | \  ̄ / / ヽ ‐- MUHAHAHAHAHA!!!!!!!
31 :
デフォルトの名無しさん :2006/02/27(月) 22:10:45
>>30 覇王ゲリツの2ch犬たちよ。
DirectXとともにおとずれるであろう、おまえらの屍は、
覇王ゲリツにとっては、BASIC同様、ただの覇道の飾りにすぎん。
DirectXを謳歌せよ。
そしてゲリツの歴史からも、BASIC同様、消え去る運命に異を唱えるな、スマッポや日本の歴史も、そうであったように。
すべてのすべての技を殺してでもゲリツは死なん。
覇道のためには、新しい技が必要だからな。
バージョンアップも下位互換性なんぞどうでもよい。
覇道の技のために、犬達はすすんで昇天しろ、嗚呼、極楽。極楽。
はい二番煎じ出ました
ヤマタは今でも傷が癒えないんだよw
全くだなw MSマンセーばっかしてないで早く社会復帰しろよw
36 :
デフォルトの名無しさん :2006/02/28(火) 15:14:00
低能ゆとり世代は何ヶ月経ったら一つのモノが作れるのやら(プゲラ 妄想に半年以上 実装に半年以上 そして一年以上が経過 気付けば受験シーズン しかし受験勉強していなかったゆとりは浪人街道まっしぐら(プゲラ
37 :
デフォルトの名無しさん :2006/02/28(火) 15:22:59
ま、Vista登場以後はOpenGLなんぞ瞬殺されるわけで そんな脆弱APIに必死にしがみついてる貧弱なお前ら低能も一緒にご臨終なこった(プププ DirectXこそ勝ち組 せいぜい余命を満喫したまえ低能諸君 死期は近いぞ
38 :
デフォルトの名無しさん :2006/02/28(火) 15:32:04
VistaのLDDMの設計に強く反対していた3Dlabs その3Dlabsが死亡した今 誰がOpenGLなんて老体を好き好んで世話するのか(プゲラ ま、お前ら低能諸君はせいぜい成長の止まった老体のケツでも拭いていればよい
39 :
デフォルトの名無しさん :2006/02/28(火) 15:35:01
グハハハハハハハ!!!!!! DirectXまんせーーーーーーーーーーーーーー
DirectX云々はスルーとしても、3Dlabsの撤退はOpenGL界にとってはクリティカルなのは間違いない。
>>1 >客観的な懸念要素を挙げた上での建設的議論は可
死の瀬戸際なのに何が「建設的」だとwwwww
OpenGLはもう「破壊的」なんだよwwww
42 :
デフォルトの名無しさん :2006/02/28(火) 15:49:53
とりあえず「ヤマタは今でも傷が癒えない」などと負け犬の遠吠えしかできない低能ゆとり世代は 死にゆくOpenGLと共に運命を甘受して 死ね
テクスチャを並べるとつながった絵なんですが 境目に線が入るのはどうやったら防げますかね?
低 能 ば か り 馬 鹿 ば か り カ ス ば か り 底 辺 ば か り 世界の恥、それが2ch OpenGLスレ
glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); glTexParameterf ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL ); これやったら境界がうまく消えました
今思ったんだけどさ、ヤマタお前日中に何回書き込んでるんだよ。 もしかして職無しか?w こんな所で鬱憤晴らすしかないとしたら、少し可哀想に思えてきた。
とりあえず荒らしは放置でいいかと ヒドいようだったらまた前スレの時みたいに申請して削除してもらえばいいし
荒らしが一人だけだと思い込んでいるとはおめでたい
新スレ立てるもネタと言えば荒らしだけか。 相変わらずのカスっぷりなスレだ。 1はさっさと削除依頼出して来いや。
50 :
デフォルトの名無しさん :2006/03/01(水) 02:53:23
悪貨が良貨を駆逐するように 低能は有能を駆逐する つまりこのスレに残っている奴らは全て低能 無論、俺様を除いて。
51 :
デフォルトの名無しさん :2006/03/01(水) 02:58:04
中田は海外へ行き イチローも海外へ行き 松井も海外へ行った スポーツのみならず知的労働者も相次いで海外へ頭脳流出 そして日本は低能国家と成り果てた その低能国家を代表するのが、貴様ら2chネラだ
SunはJava6からjoglを直接サポートするんじゃなかったかな SUSE LinuxもXglとかいうので新しく採用してるし まだまだ必要とされてるよOpenGLは
joglって確かGL拡張機能にも対応してたよな。 GLUTでなくJavaでってのは確かに面白いかも。GUIはSwingが使えるし。
低能はまだ分かっちゃいない。 必要とされているのはローエンド・ミドルエンドの分野のみ。 ハイエンドでは完全にDirect3Dに軍配が上がっている。 何故OpenGLが終了だと叫ばれているのか。 それは技術は水のように上から下へ向かって流れていくからだ。 ハイエンドでの技術革新が止まれば下への技術の流れも止まる。 APIの使用方法というミクロで近視眼的な事柄にしか理解が及ばず こういった全体的でマクロなはロクに理解できない低能ども。 恥を知れ。貴様らのような低能がOpenGLを滅ぼすのだ。
55 :
デフォルトの名無しさん :2006/03/01(水) 03:21:25
いや、低能はOpenGLの進退に微塵にも影響しないでしょ
56 :
デフォルトの名無しさん :2006/03/01(水) 03:24:24
しかもOpenGL2.0すら満足に理解してない馬鹿だし
技術革新は心臓の鼓動に同じ。 鼓動が止まれば血液は循環しない。 血液が循環しなければ下位組織は腐敗する。 OpenGLにとっての心臓は3Dゲームを筆頭とするハイエンド分野。 Linuxなど下位組織に過ぎない。 そして低能どもは下位組織だけで肉体が生存できると思っている。 極めて低能である。
>>57 いいからお前は引き籠もりやめて社会復帰しろ
優劣ばかり気にするのはそれこそ劣等感に突き動かされてる証拠だよ。
お前が優秀だったらそもそもこんな所で数十分おきに書き込みする暇
なんてあるわけないだろうがw
段々オマエの私生活が伺えてきたよ。莫迦だな。書き込む度にボロが出てやがるw
ヤマタはもともとコンプレックスの塊、昨日久しぶりに煽っただけで爆走カヨ 必死なのも眠れなくなるのも相変わらず
低能どもの反論と言えば、OpenGLではなく単なる個人に対する厨房並みの誹謗。
俺は貴様ら低能どもに対して非常にありがたい示唆を無料で提供しているのだが、
低能どもは低能ゆえその示唆が意味するものを全く理解できない。
それどころか、単に自分の無能さを指摘されたものと受け取り、単細胞的な反応しかできない。
とりわけ「ヤマタヤマタ」などと馬鹿の一つ覚えで吠えている真性の低能は
>>54 >>57 を100回読み直して出直して来い。
ヤマタヤマタ
まさに馬耳東風。 貴様ら低能どもは馬や鹿と何ら変わり無い、と比喩するなら かえって馬や鹿に対して失礼に当たるというものだ。 猿以下の知能しか持ち合わせていない低能ども。 貴様ら低能どもがOpenGLひいては計算機を使用する権利などどこにも無い。 自然に帰して野山を駆け回っていろ猿人どもが。
ま、低能どもは大自然の営みの中に帰する価値すら無いゴミと言えよう。
DirectXをLinuxでも動くようにしてくれよMS信者
テクスチャにマスクを掛ける方法を教えてください RGB画像でテクスチャを作成した後にAlphaだけ上書きしたい そういうことってできますか?
>>62 OpenGLへの批判だったのが徐々に全員への攻撃に。
苛立ってきてる証拠だなw
無職orヒッキーって指摘が図星だったからじゃね?w
おまえら現実の世界でキ印に出会ってもちょっかいだすのか? ふつう目をそらしてそっとその場を離れるもんじゃないのか?
70 :
デフォルトの名無しさん :2006/03/02(木) 17:59:56
73 :
デフォルトの名無しさん :2006/03/02(木) 18:19:21
石橋は脱退について「ここ数年間、DirectXの著しい台頭とOpenGLの凋落で ひたすら思い悩み、我が身に問いかけ続けた上での苦渋の決断」と説明。 活動方針を巡り他のARBメンバーと話し合いを重ねてきたものの「合意に達する ことが出来なかった」としている。今後については「一生DirectXに付いていきます」 とDirectX信者として活動を続けていくことを明かした。
なんでopenglのAPIとか中身の話しないの?
では、なにか質問があるならどうぞ
マジレスすると中身の話ができる奴がこのスレに1人もいないからです。 本当にありがとうございました。
複雑な凹んだポリゴンを表現する場合複数の三角形などのポリゴンを組み合わせて表現できますよね。 そこでそのポリゴンの境界を指定するエッジフラグについてなんですが、エッジフラグの仕組みはわかりましたが わざわざエッジフラグを使用して境界辺を指定する意味ってあるのですか? 表面から見る分には三角形の辺が他の三角形ポリゴンの内部にめり込んでいてもいいような気がしますが・・
>>66 マルチテクスチャで普通にMODULATEで出来るんじゃないの?
マルチテクスチャは拡張機能なので限られた環境しかつかえないので避けたいです ステンシルって見つけたんですがこれでできますか?
マルチテクスチャはOpenGL1.3から標準になってますが、まだ対応されていない環境って存在するんでしょうか? 半透明なしでアルファの0/1で抜くだけだったら glDepthFuncを工夫して同じ場所に2回ポリゴンを描けばできるかな? 1回目にAlphaで普通に描いて、2回目にGL_EQUALで描くとか。
OpenGLマスターしてる香具師ってこのスレにいるのかな もちろん俺もわからんが 赤本高すぎなんだよ('A`)
新版まだかな
ゆとり妄想炸裂
いまどき初心者以外で赤本なんぞ頼りにしてる奴なんていねーよ
だってこのスレは初心者しかいませんから。 本当にありがとうございました。
87 :
デフォルトの名無しさん :2006/03/05(日) 20:10:37
即レス+age 必死杉
89 :
デフォルトの名無しさん :2006/03/06(月) 00:29:00
ゆ と り 妄 想 炸 裂 ゆ と り 妄 想 炸 裂 ゆ と り 妄 想 炸 裂 ゆ と り 妄 想 炸 裂
90 :
デフォルトの名無しさん :2006/03/06(月) 01:35:04
ゆとりの妄想っぷりは痛過ぎて見るに耐えない
>>84 いや、んな事ないだろ。
2.0日本語版は確かにあっても良いと思う。その時は翻訳の質も上がってくれればね。
そろそろアク禁じゃね?
>>92 そのメ欄はどこ向け?
めっさ気になる(w
馬鹿どもが
GLUTでglutCreateWindowを呼び出したときに、 ネットワークでなにかしようとするんだけど、何しようとしてるのか知らない?
このスレの馬鹿どもは天然記念物並みだぜ
DirectX使いなんだけど、GLはライブラリ使わないと使用できないの? コンシューマ開発に必須だから覚えたい
100 :
98 :2006/03/09(木) 08:07:27
解説サイトでは多くのところでglutとか使ってるけど、 ライブラリ越しじゃなくGLを直接触ることはないのかな DirectXでは有名なDirectX用ライブラリとか使わなくてもDirectXSDKに関数軍があるからGLの方はどうかなって
OpenGLを扱うにはライブラリが必要 適当なヘッダーをインクルードしてライブラリをリンカに噛ませてコンパイル汁
102 :
98 :2006/03/09(木) 09:01:56
サンクス やっぱりそこそこ有名で使用してる人も多いとなるとglutになる? auxだとかgluとか色々あって混乱してる
auxはglutの前身だったもので、もはや使っている人は殆ど居ない。 glutはちょっとしたサンプルアプリの開発とかには手軽で向いているけど、 本格的なGUIアプリの開発をしようとするなら、他のGUIツールキットを使った方がいいよ。 あとOpenGLは描画以外の機能は殆どなくて、行列計算やらクォータニオン計算やら、その他 もろもろは自分で書くか他ライブラリを使うことになる。
お前らいつまでぼけ続けるつもりですかよ?
>>100 は?
OpenGL自体ライブラリだけど?
glutみたいな拡張ライブラリ使わずに利用している人もたくさんいるが?
106 :
デフォルトの名無しさん :2006/03/09(木) 21:30:13
OpenGL- グラフィックソリューションの総称 OpenGL SDK - 開発者向けキット OpenGL API - グラフィックAPI OpenGL ライブラリ - OpenGL APIを利用するための基礎的なライブラリ GLUT - フレームワーウ DirectX - グラフィックソリューションの総称 DirectX SDK - 開発者向けキット DirectX API - グラフィックAPI DirectX ライブラリ - DirectX APIを利用するための基礎的なライブラリ D3DX - Direct3Dの機能を拡張したライブラリ DXUT - フレームワーク
107 :
デフォルトの名無しさん :2006/03/09(木) 21:59:00
行列計算くらいgluか何かでつけてくれりゃぁいいのに
4x4行列の乗算すら暗算で出来ない低能ゆとり世代だけのスレはここだな。確信した。
109 :
デフォルトの名無しさん :2006/03/09(木) 22:11:07
行列計算くらい自前で用意できない人間はOpenGLを使う資格はないのです。 LU分解程度は出来ないとOpenGLは無理です。 素人はDXUTでも使ってろ。
行列の乗算・・・って外積内積ではないの?
基礎的なことだからこそ共通の土台が欲しいわけですよ 世界中の人と数学を共有できるという体験から それをプログラムに拡張したいと思うのは当然
>>109 お前リアルでゆとり世代だろ。藁
馬鹿の一つ覚えで「LU分解程度は云々」などと抜かす様は非常に痛々しい。
自分が痛いということを認識していないという点もさらに痛い。
ていうかお前、ソースをコピペしただけだろうが。
もともと低能なのだから、あまり調子に乗らない方がいい。
近々、自分が低能だということを再認識して落胆するからな。
ワロスwwwリアル登場かよwwww
114 :
デフォルトの名無しさん :2006/03/09(木) 23:21:09
ゆとりと同じスレに書き込んでいる自分が恥ずかしくなりました どうみてもリアルゆとり世代ですキモイです 本当にありがとうございました
新スレ立てても所詮は同じネタでループしてるだけじゃねーかカスどもが 見るからにクソスレなんだからさっさと削除依頼出して来い それ以前に次スレは禁止だと言ったはずだ 思考力も行動力もないカスどもが削除依頼出さないのなら俺が出してくる
そのカスどもを一般社会から隔離するための肥溜めとして機能してるんだから良いじゃない。
お、やってるやってる俺以外からも煽られてやがんの
>>113-115 はヤマタだよーーん
1回のレスに3回も書いちゃうキミって、やっぱ伊達にヤマタと名付けられたわけじゃない
ゆとりというよりただのマヌケ、それがヤマタ109号なのだった
顔真っ赤にして急いで書き込んだリアルゆとり世代
>>117 のキモ面が目に浮かぶぜ
「ゆとり世代」という言葉で煽られて反応する ↓ リアルでゆとり世代ということを自ら証明 さすが馬鹿
童貞と煽られて反応する非童貞はいない ゆとり世代と煽られて反応するのは唯一 リ ア ル ゆ と り 世 代 の み
121 :
デフォルトの名無しさん :2006/03/10(金) 00:18:52
どうみてもリアルゆとり世代だな馬鹿がwwwwwwwww >LU分解程度は出来ないとOpenGLは無理です。 >LU分解程度は出来ないとOpenGLは無理です。 >LU分解程度は出来ないとOpenGLは無理です。 >LU分解程度は出来ないとOpenGLは無理です。 >LU分解程度は出来ないとOpenGLは無理です。
122 :
115 :2006/03/10(金) 00:24:32
また低能どもが沸いてきたんでマジで削除依頼出しといたわ
LU分解できないけど、GL使ってます
MacOSXのGLUTには行列演算のマクロついてるんだけどな
逆行列じゃなくてLU分解使う場面とか実際あるの?
つーかお前ら、あまりリアルゆとり世代に助言しないほうがいい。 ただでさえ自分で思考する能力が大幅に欠如しているのだから、 安易に助言なんてしようものなら、それこそプライドだけが高い害虫を生成することになりかねん。
既に害虫だけどな
128 :
デフォルトの名無しさん :2006/03/10(金) 13:10:42
今年からゆとり世代が大学入学か 大学衰退必死だな 先生方も馬鹿に合わせて講義しなきゃいけなくなるし ゆとり世代はまさに日本の害虫
※注意 このスレを閲覧するときは 「ゆとり」をNGワードに指定してください
閲覧する価値もねーよこんなクソスレ
>>130 なぜそんなスレを君は閲覧しているのか・・・
ゆとり世代の劣等感が彼を狂気に駆り立てるのです。
レスソクなんこよーねも値価るす覧閲
わざわざスレッドの価値を更に落とそうとしてる人たちがいるように思うんだけど、 マイクロソフト信者?
ただ、もう終わったと自分が思ってるから、終わらせようとしているのでしょう
136 :
デフォルトの名無しさん :2006/03/10(金) 17:59:21
図に乗るな お前のやること みなできる
もう3月も中旬、そろそろ来年度か § ,§、 プラーン ,ー./ハ,§ 〈:://二§_ /ヽ ヽ ヽ |:: |::.. | | . |:: |:::. | | 鬱だ氏脳・・・ 〈:: 〉:: | / | . |:: |:: l | . |:: |____∧_,| (((〈::: _ / /) |:::: |:: | |:::: |:: | . |:: =|::: =| |:::: |:: | . |::: ||:::: | |__,||__| /::__) /::__) / / /ノ,/ )) ~^~ ~^~ 結果が出せないゆとり、自殺寸前
138 :
デフォルトの名無しさん :2006/03/10(金) 18:19:57
・WindowsVista登場でDirectXの支配下に置かれるOpenGL ・3Dlabs撤退で成長が停止した老体のOpenGL ・支持者と言えば非力なLinux/Mac信者のみのOpenGL そんな死亡確定のOpenGLを未だに使用してるお前らに生きる価値は無し 老体OpenGLと一緒にご臨終してくれたまえ DirectXに敵は無し
139 :
デフォルトの名無しさん :2006/03/10(金) 18:24:22
ていうか大した理由も無いのにWindows上でOpenGL使ってる奴って何なの? 「あの人が使ってるから〜」とか、マジ馬鹿丸出し過ぎ Windows+DirectX、これが王道 他は全て邪道
140 :
デフォルトの名無しさん :2006/03/10(金) 18:32:11
・WindowsVista登場でDirectXの支配下に置かれるOpenGL ・3Dlabs撤退で成長が停止した老体のOpenGL ・支持者と言えば非力なLinux/Mac信者のみのOpenGL OpenGLが進歩し続けるとかヌルいこと抜かす奴は 上記三点に対抗しうる「事実」を提出してもらいたいね 「妄想」じゃなくて
ええと、要するに「DirectXがこんなに素晴らしいのに、それと競合するOpenGLを 使うようなヤツは許せない!」ということ? DirectXはOpenGLに比べてどういう点で優れているの?
ぶっちゃけOpenGLはDirectXと競合すらしてません。 本当にありがとうございました。
まだ勘違い君が荒らしてるのか。
>>142 よく分からないけど、その論を裏付けるソースとかある?
「○○社が撤退したからOpenGLはダメだ」とかいうのは、「○○社が撤退すれば
おそらくOpenGLはダメであろう」という主観が入ってしまうので、もっと直接的に
「OpenGLはDirectXと競合すらしていない」ことを示すソース。
お前らよく付き合ってる暇があるね。うらやましいよ。
だってOpenGLのネタがないんだもん
PCでの利用しか頭に無いDirectX厨は幸せだな
Windows以外はすべてOpenGL そしてWindowsでもゲーム以外はすべてOpenGL つまりエロゲと洋ゲー以外はみんなOpenGLなんだよ!
あ、XboxもOpenGLじゃなかったね 忘れてたよ
次スレ以降、本OpenGLスレは OpenGL on Windowsスレ OpenGL on UNIX系スレ OpenGL on 組み込み系スレ OpenGL on モバイルスレ に分かれ、さらなる過疎化・荒らし激化を迎えます。
一つのスレでOpenGLを一本化して扱おうというのがそもそもの間違いです。 WindowsではWindows固有の、UNIX系OSではUNIX系OS固有の、 組み込み系では組み込み系固有の、モb(ryでは(ryの問題が存在します。
ここがいつ環境依存の問題を扱うスレになったんだ?
じゃあもう、いっそのこと環境問題を扱うスレにしようぜ。
154 :
117 :2006/03/11(土) 12:48:11
155 :
デフォルトの名無しさん :2006/03/11(土) 17:50:38
もう3月も中旬、そろそろ来年度か § ,§、 プラーン ,ー./ハ,§ 〈:://二§_ /ヽ ヽ ヽ |:: |::.. | | . |:: |:::. | | 鬱だ氏脳・・・ 〈:: 〉:: | / | . |:: |:: l | . |:: |____∧_,| (((〈::: _ / /) |:::: |:: | |:::: |:: | . |:: =|::: =| |:::: |:: | . |::: ||:::: | |__,||__| /::__) /::__) / / /ノ,/ )) ~^~ ~^~ 結果が出せない油鳥、自殺まであと 20日
156 :
デフォルトの名無しさん :2006/03/11(土) 18:01:00
何やら調子ブッこいている低能油鳥だが 実際は全て他人のソースをコピペしたに過ぎない 事実、いざ自力で作ろうとしても 常人では1ヶ月あれば十分なものが い つ ま で 経 っ て も 作 れ な い 合言葉は馬鹿の一つ覚えの「LU分解」 もちろん、それも単なるソースのコピペ 数学的アルゴリズムを理解していない、否、 低 能 ゆ え に 理 解 で き な い
157 :
デフォルトの名無しさん :2006/03/11(土) 18:09:10
>行列計算くらい自前で用意できない人間はOpenGLを使う資格はないのです。 >LU分解程度は出来ないとOpenGLは無理です。 >素人はDXUTでも使ってろ。 用意した行列ライブラリは他人のソースをコピペ LU分解も他人のソースをコピペ そして油鳥本人が「素人」という揺ぎ無い事実
優劣ばかり気にするその意識自体が幼さの表れと気づいてくれ
このスレ自体が外界から隔離されたキチガイワールドだという事実に気付いてくれ
マイクロソフト社員乃至信者が暴れてる
Microsoftは最高に決まっている。 Windowsは最高に決まっている。 DirectXは最高に決まっている。 反論は受け付けない。なぜならこれは真実だから。
反証不可能キタ━━━━(゚∀゚)━━━━ッ!!!
勝手にDirectXつかっててくれ、俺も黙ってOpenGLとか好きなの使うから
>>164 むしろ
>>162 は、「勝手にゲイツ様のお作りになったもの以外を使うなボケ!」と
主張しているのでは?
どっちでもいいから他人の褌で相撲とるのだけはやめてくれ。 例: DirectXはすげぇのである、それを使う俺様もすげぇのである。 OpenGL使う奴は負け犬なので辱めても良いのである ※:上記の固有名詞は適宜入れ替えてください 偉いのはあんたじゃなくて「ホゲホゲ」を作った人と企業だっつーの
煽りにマジレスキタ━━━━(゚∀゚)━━━━ッ!!!
でも確かに、よその借り物で勝手に優越感感じてるのは見ててシラけるよな
そういうお前らはオーガズムを感じたことはあるのか?
ドライにアナリスクすら必要ありませんが何か?
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
172 :
デフォルトの名無しさん :2006/03/19(日) 02:04:45
OpenGLって複数枚のグラフィックスカードの認識どうやるの? DirectXだとデバイスの列挙のところで複数枚を認識できるはずなんだけど, OpenGLにもそれっぽい関数があるのかしら.
OpenGLでもDirectXでも自前でも切り替えられるライブラリ 作っとくのが一番いいよ。
>>172 OpenGL MLの12670からの奴が参考になると思うぞ。
GetDC()はプライマリのDCしか返さないから、EnumDisplayDevices()と
CreateDC()を使って両方のグラフィックボード上のDCを得て、
それぞれピクセルフォーマットを設定してレンダリングコンテキスト作って、
wglMakeCurrent()で使い分けてやる必要があるそうな。
175 :
172 :2006/03/19(日) 15:24:47
>>174 ありがとうございます.
参考にしてみますっ.
176 :
デフォルトの名無しさん :2006/03/21(火) 19:30:21
このスレ読んでますますMSが嫌いになった。
おれは嫌いになるほど元々好きじゃなかったな
漏れはマウスメーカーとしてなら好きだが
ゲーム用インプットデバイスは秀逸だと思った。
Windowsは秀逸だと思った。 DirectXは秀逸だと思った。 Microsoft製品は全て秀逸だと思った。 Bill Gatesは神だと思った。
神は死んだ。
そして本当の歴史が始まった
僕は新世界の神になる
田代…神 ここまでだ 神は今日ここで滅びる
185 :
デフォルトの名無しさん :2006/03/22(水) 12:40:56
186 :
デフォルトの名無しさん :2006/03/22(水) 12:50:26
>>185 いつの話してんだ?
さすが日本人は世界が狭すぎ
日本語の情報源しかないとは哀れだな
イタリア語もできないのかよ
うーん、朝鮮語ならできるんだけどねぇ
鎖国人必死だな
「Open GL」の半角スペースがとてつもなく気に入らねぇ。
Direct X
何にせよ、OpenGL使う者にとって吉報には違いない
KHRONOSがOpenGLまで扱うようになると、他のOpenMAX等の他技術と相互利用が できるようにいずれはなるかもしれないな。 そこらの規格もGPUがサポートしてくれれば、描画オンリーで他が弱かったGL開発の 環境が良くなる鴨。
余計な機能を何でもかんでも付け足して肥大化したデブは不要。 クリーンでタイトでシンプルなAPIに勝るものは無し。
まぁケースバイケースだろそれは
最新技術の標準化スピードを上げる、とか言ってるからちょっと期待してみる
>>185 どうせDirectXの皮をかぶってるんだろ。普段はいいけど、ちょっと負荷がかかるだけでエラーでまくりになるよ。
うんこ
GLUTつかってるやつがコンパイル通ってくれりゃいいよ、我慢するよ、ほめてあげるよ
203 :
デフォルトの名無しさん :2006/03/30(木) 19:42:42
§ ,§、 プラーン ,ー./ハ,§ 〈:://二§_ /ヽ ヽ ヽ |:: |::.. | | . |:: |:::. | | 鬱だ氏脳・・・ 〈:: 〉:: | / | . |:: |:: l | . |:: |____∧_,| (((〈::: _ / /) |:::: |:: | |:::: |:: | . |:: =|::: =| |:::: |:: | . |::: ||:::: | |__,||__| /::__) /::__) / / /ノ,/ )) ~^~ ~^~ ゆとり、無事に自殺。
触り始めて2週間ぐらいなのですが、調べてもよくわからないので教えてください。 OpenGLでの、「フォグのかかり具合」についてです。いくつかのサイトでは、 フォグをEnableにした場合、視点と対象物との距離で色が算出される、として数式が 挙げられていたのですが、これ、もしかして視点と対象物が、Z軸に平行の場合のみ って事はないですよね? きっと自分がミスしてるだけだろうとは思うのですが、たとえば glFogi(GL_FOG_START, 1); glFogi(GL_FOG_END, 5); とでもしておいて、 x, y, z = {0, 0, 5} に視点をおいて、x, y, z = {-5, 0, 5} の方向を見たとき、 ちゃんとそれなりにフォグるものなんでしょうか? どうもうまくいかないのです。 情報が少なすぎるかもしれませんが、フォグ使用時に考えられるイージーミスなど ありましたら教えて頂きたいです。
どううまくいかないのかぐらい書かないとー。 START/END使うならGL_FOG_MODEはGL_FOG_LINEARにしてます?
>フォグをEnableにした場合、視点と対象物との距離で色が算出される それは嘘だな。フォグのかかり具合はビュー座標系のZの値だけで決まる。 もちろんシェーダを書けば本当の距離フォグも出来るけどね。
>>205 すんません。はい。LINEARにしてます。
具体的に書くと、Z軸に平行な視点で対象を見ている時にはちゃんと遠景にフォグが
かかるのですが、上にも書いたように、たとえばX軸上に平行なものを見ている時
(x, y, z = {5, 0, 0} に立って x, y, z = {0, 0, 0} を見た時など)
にはぜんぜんフォグがかからないのです。
(そのまま、たとえば視界を右に90度振れば、やはりちゃんとフォグがかかってます)
それで、もしかしてフォグってZ軸でのみ有効な効果なんて事はないよなぁ、と
妙な疑問を覚えた次第です。そんなわけない、ですか?
208 :
207 :2006/03/31(金) 00:54:58
わ、タイムラグでドンピシャっぽいレスが。
>>206 さん
まさにそんな感じです。で、OpenGL赤本を立ち読みしてみても、
難しい数式が書いてあって、その中に使われている z という変数が
「z : 視点と対象との距離」というふうに書かれてあったんです。
(で、家に帰って来て自分のプログラムを動かしてみる限りでは、これは
どう考えても視点と対象との「Z軸における」距離、にしか思えないなぁ、と……)
いま自分の書いているプログラムが、アニメーションの際に
視点の方を動かすようにしているのですが、こうなると対象の座標系の方を
動かすように変える必要がありそうです。検討してみます。
とりあえず寝ます。
>>205 さんもありがとうございました。
209 :
205 :2006/03/31(金) 02:03:12
座標系を勘違いをしているように思えるのだが、視点を動かすのも対象を動かすのも一緒 Z軸がうんぬんっていうのがすでにおかしい。視点の変更方法に問題があるようなきがする。 フォグカラーは黒のまま?色つけてやればフォグがかかってなくて真っ黒なのかとかデバッグしやすいかも
モデル座標系
↓ モデルマトリクスによる変換
ワールド座標系
↓ ビューマトリクスによる変換
ビュー座標系(またはカメラ座標系)
↓ プロジェクションマトリクスによる変換&ビューポート変換
スクリーン座標系
OpenGLではモデルマトリクス×ビューマトリクスをまとめてモデルビューマトリクスとして扱うわけだが、
>>207 はビューマトリクスをプロジェクションマトリクスのほうにかけ込んじゃってるんじゃなかろうか?
211 :
デフォルトの名無しさん :2006/03/31(金) 06:01:40
クックッククック
青い鳥〜♪
214 :
207 :2006/03/31(金) 23:52:38
>>209 はい。カラーは変えてみて、やはりZ軸方向にしかフォグが反映されないのは確認済みです。
座標系を勘違いしている気は、実は私もしています(汗
つまり、上で私の挙げたような例でも、適切なコーディングさえしていれば
きちんとフォグがかかるはずだという事ですよね。
>>210 さんのヒントをもとに、もうちょい勉強してみないと駄目っぽいです。
どうもでした。
もうちょっと直截的な表現をとると、glMatrixMode()でGL_MODELVIEWと GL_PROJECTIONを適切に切り替えているかということ。
216 :
207 :2006/03/32(土) 00:36:10
わわわ、いけました! gluLookAtをglMatrixMode(PROJECTION)の中でやっていたのが原因です。 うまくいってちょっと感動しました。 こんな調子なんでまたすぐお世話になりそうな気もしますが(汗 よろしくお願いします。皆様ありがとうございました。
217 :
デフォルトの名無しさん :2006/03/32(土) 20:17:38
ぐぐってもまともなサンプルひとつ出てこないから質問です。 nVidia拡張の、NV_primitive_restartってやつを使いたいのだが、 これまともに動いている? ちゃんと使う拡張機能はwglGetProcAddressで使える状態にしてから、 描画時に、 glEnableClientState(GL_PRIMITIVE_RESTART_INDEX_NV); glPrimitiveRestartIndexNV( 9999 ); glDrawRangeElements( GL_TRIANGLE_STRIP, 0, 99, 99, GL_UNSIGNED_INT, testIndex); とやっているのだが、ダメなんだ。 リスタートインデックスを無視してるみたい。 誰か助けください
glEnableClientState(GL_PRIMITIVE_RESTART_NV);
219 :
デフォルトの名無しさん :2006/03/32(土) 23:23:22
>>218 なるほど。glPrimitiveRestart()使わないときでも、
glEnableClientStatus(GL_PRIMITIVE_RESTART_NV)が必要なんですね。
今3D変換しない静的な描画のサンプル作ってみて確認しました。
うまく動作してるみたいです。ありがとうございました。
これからはバッファオブジェクトのほうで試してみます。
うまくいかなかったときにはまた書き込み入れます。
>>219 いや、GL_PRIMITIVE_RESTART_INDEX_NVはglGetで使うものだ。
EnableClientStateに渡すことはない。
どの定数がどの関数に渡せるかは仕様に書いてあるからちゃんと読めよ。
ありがとう。 確かに仕様書にも書いてありました。 もっと注意深く読まなきゃダメだと反省…
こういう質問を、ここでしていいんだかわからんのだが、結局NVIDIAの ボードを使うと決まっている時には、GLSLとCg(Fx)ならどっちを使えば いいのかねえ?
そんなことをいちいち聞くような人間にシェーダは使いこなせない。 以上。文句あるか?
>>223 いや、別に文句はないけど、質問の意味がわからない小学生は
出入り禁止だよ?
>>222 使わなくてすむならどっちも使わないほうがいい。
「NVIDIAのボードを使うと決まっている」だけでは何をしようとしているのか分からん。
なんでシェーダが必要なの?
小学生じゃないけど質問の意味が分かりません。
>>225 うちの上司が「GPGPUだぁ!おめーやってみろ」ってゆーんで
嫌も応もないのよ。
>>226 そういう無能な上司を良い方向へ導くのが部下の使命
>>227 ま、いろいろ進言したり、示唆したりはできるけど、決めるのは向こうで
従うのは、こっちだから、雨降りの太鼓ですよ。
上司に恵まれなかったら つ「オー人事オー人事」
GPGPUの分野じゃ確かにnVidia選ぶ人が多い気はするが、 どんなもんかねぇ。がんがってください。
>>222 俺Cgしか使ってないんだけど、Cgでもglstateは見れるし、 FragmentShaderでのdiscardもできるから
どっちでも一緒じゃない?
好みにもよるけど、自分はコマンドラインでコンパイルして結果みれるのでCg使ってまつ。
GPGPUするならまた違うのかもしれないけど、研究調査なら両方使ってみるべし。
つかflagment shaderみたいな粒度の細かい部品の組み合わせが楽なのがCgじゃないの? DX10だとどうかしらんけど、DX9じゃこのたぐいはちと泣ける。
CgってnVidia以外のGPUじゃ動かないの?
もしもGPGPUをするためにわざわざNVIDIAのボードを買おうとしているならやめとけ。 GPGPUっていうのはすでにあるGPUを使って安上がりに処理を高速化できることに意味があるのであって、 金があるなら速いCPU買ったほうがまし。
>>234 正にそれが売り文句だと思ってる節があるのよ。件の上司。
セロリンでもNVIDIA載ってりゃ速よなりまっせ!お客さん。
…らしい…(泣き
>>233 ATIでもCgは動く
>>235 何の分野かわからないが、上司の考えが良いアイディアである可能性もあるんじゃないの?
なんでいきなり否定的で泣いてるだかわからないが、調べて考えてから結論を出すべき
というかGPGPUの精度で事足りるのってのもあれだな。
GPGPUはやっぱシェーダモデル4.0からだろうな。現実的なのは。 それより、Radeon系だとCgのプロファイルって何を指定すればフル機能を使えるんだろう。
現時点で業務で本格的にシェーダを使おうとすると ドライバのバグや謎仕様との戦いになるので NVIDIAに直接強く意見の言える会社以外はお勧めしない。 「これが出来たらNVIDIAのボード1万枚買ってやるからサポートしろ」と言えるならやってもいいかも。
>>238 glslv/glslf
1.5ベータで追加されてた。
NVIDIAのことだからまともに動くかどうかは知らんがな。
>>236 んー、
「まだ正式にプロジェクト組めないから、おまいチョト時間やりくりしてやってみれ」
て、ところが…(泣き
なら、自分のスキルアップのためと割り切ってGLSLでもやってみなよ。 あとで「やってみましたが制限がきつくて使い物になりませんでした」と報告すればいい。
GPUベンダはさっさとドライバをオープンソースにして プログラマにISAでのGPU直叩きを許容するべき。 まー、実際に叩ける人間なんて一握りしかいないけどなー。
ドライバを組める人間は大規模システムが組めない 大規模システムが組める人間はアイデアがしょぼい 世の中うまくまわらない
>>240 それってGLSLをコンパイルできるって事?
cgcにGLSLを入力してアセンブリにコンパイルは前から出来てた。 1.5ではCgのソースからGLSLにコンパイルが出来るようになった。
>>242 むー、しかし、割り当て済みの作業をこなした上でやるとなると
こんな時間に会社から2chに書き込むはめに…(泣き
つ転職
>>246 なるほどね。Cgだけで全てに対応できるってわけだ。
GLSLの方がOpenGLの色んなステートを直接指定できて便利だけど。
Cgの方がつぶしが効くかな。
突然だが、 GL_ONE_MINUS_DST_ALPHA がうまく機能してくれなくて困っている。Geforce6系なんだが、まさか対応していないとか??
フレームバッファをRGBAでなくRGBにしているとかじゃないよな?
252 :
デフォルトの名無しさん :2006/04/14(金) 00:32:45
>>251 きちんとRGBAにしてるよ。
何が行けないのかなー。
具体的にどう設定していてどううまくいかないのか書いてみそ。
こんな感じになってるのよ。 glClearColor(0.7, 0.7, 1, 0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glDisable(GL_DEPTH_TEST); glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ONE); glEnable(GL_BLEND); drawPrimitive(); glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); drawPrimitive();で描画してるんだけど、画面が(R,G,B)=(0.7, 0.7, 1)のままなのね。 何も変化しないの。glBlendFunc(GL_ONE, GL_ONE);とかglBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_ONE); とかglBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE);とかはきちんと結果に反映されるんだけど。 ボリュームレンダリングで、どうしても前のスライスからブレンドしないといけない事情で、 GL_ONE_MINUS_DST_ALPHA使ってるんだけどね。
255 :
254 :2006/04/14(金) 01:30:39
iBookのMobility Radeonだとうまく行った。 もしかしてnVidia GPUはGL_ONE_MINUS_DST_ALPHAに対応してないのかも。 誰かGeforce、Radeonいずれか持っている人は試してみてくれまいか。
おいらの6200では、次の4種の指定で全部別のレンダリング結果になるから 動いているような気がする?>NVIDIA glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ONE); glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_DST_ALPHA, GL_ZERO); glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ZERO);
glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_ONE) 6600だとダメっぽい。2ndPCのRADEON9700proだと同じexeでちゃんと出力された。 ただ今酒飲みながら作ったtest-programだから自信ないけど
258 :
デフォルトの名無しさん :2006/04/14(金) 11:21:21
みんなありがとー。他の方も良かったら試してみてください。 俺も今日大学の他のGeforceで試してみます。
glutに騙されてる希ガス。 #define GLUT_RGB0 #define GLUT_RGBAGLUT_RGB #define GLUT_ALPHA8 なんで GLUT_RGBA == GLUT_RGB | GLUT_ALPHA じゃないんだ?
あ、タブが消えた。 #define GLUT_RGB 0 #define GLUT_RGBA GLUT_RGB #define GLUT_ALPHA 8
261 :
257 :2006/04/14(金) 13:31:27
お、GLUT_ALPHA付けたら6600で動いた。でもradeon9700proの方の表示とは一致しない。6600の方が正しい感じ。
長いことGLUT使ってるけどGLUT_RGBAについて知らなかった。thx
>>260
262 :
デフォルトの名無しさん :2006/04/14(金) 18:05:32
>>260 ありがとう! こちらでも確認しました。
GLUT_RGBA == GLUT_RGB | GLUT_ALPHA なんて紛らわしいったら……orz
263 :
デフォルトの名無しさん :2006/04/14(金) 18:12:35
GLUT_RGBA != GLUT_RGB | GLUT_ALPHAなんて紛らわしい、だね。間違えた。
264 :
デフォルトの名無しさん :2006/04/20(木) 07:48:49
OpenGLにMPEGを再生するAPIはありますか?
(ツ´  ̄ (G) 〈((人ヽヽY_ わたしをどこかのスレに送って! //、゚ヮ ゚ |)ヽ。 \ お別れの時にはお土産を持たせてね! /|  ̄ ̄ ̄ ̄|.\/ |.技嘉科技.|/  ̄ ̄ ̄ 現在の所持品:Pentium D 820・マコの匂いつきパンティー
266 :
デフォルトの名無しさん :2006/04/20(木) 13:06:32
WGL_MTX_video_preview
shadow2DProjがRADEONだと1:0でGFだと中途半端な値を返すんだけど何か必要なパラメータとかある?
自己解決しますた。
技術系のスレで「自己解決しますた。」だけとはなげかわしい
>>269 2chで適当に質問するような平均以下の知的水準の人間に
そういった基本的なことを求めるのは酷というものだよ。
271 :
デフォルトの名無しさん :2006/04/23(日) 14:18:09
まぁ、平成生まれは低能というのは常識なので別段驚くことでもないが。
平成生まれにはせいぜい高卒レベルまでの奴しかいない。これ常識。
昭和生まれはぜいぜい80歳で100歳レベルの奴はいない。これ常識。
また優劣比較が好きな香具師が出てきた。よく飽きないなw
やっとテクスチャから頂点データ読み込んで レイトレできた.けど,書き方がわるいのか レジスタ使いすぎだゴルァ!!ってなる…
>>275 ヒント:
平成元年生まれは現在18歳。つまり・・・
昨日生まれならせいぜい新生児レベルまでの奴しかいない。これ常識。
明治生まれのワシが最強。 昭和生まれも平成生まれも、ワシからすれば文字通り赤子みたいなモンじゃよ。 フハハハハハ!
待たれよ! 江戸生まれの拙者を忘れているでござる。
>>281 ってやんでぃ、それじゃ場所のことじゃねぇか。
またこの流れか
>>278 平成元年は1989年です、17歳−16歳しかいません
また、長らく恥の上塗りを繰り返していたキティは平成生まれの受験生などという失笑モンのネタを2006年の3月以前に繰り返していました。 06年春に大学受験をしたのは昭和62年と63年4月1日生まれまでだったというオチでした。 それに引きずられないようにしましょう、アホウは一人で十分です、キーワードは「ゆとり」と「数学」 レス削除依頼など面倒なだけなので生暖かく放置が吉
ヒント:今年春に大学受験した世代が初代○とり世代
こういうことしかネタが無いOpenGLって未来あんの?
289 :
デフォルトの名無しさん :2006/04/26(水) 09:54:49
OpenGLってDirectXのD3DVECTORみたいにx,y,zを格納するデータタイプって存在するの?
そういうのを自分で作るのがOpenGL流です。
世代格差・優劣ネタ ↓ 数学ライブラリネタ ↓ 低レヴェルな卒研ネタ ↓ くだらないエロネタ ↓ 以下ループ
世代格差・優劣ネタ ↓ 数学ライブラリネタ ←いまここ ↓ 低レヴェルな卒研ネタ ↓ くだらないエロネタ ↓ 以下ループ
293 :
デフォルトの名無しさん :2006/04/26(水) 23:35:00
卒研関係でOpenGLを扱っているのですが、 マウスポインタの位置にある3Dオブジェクトを検出するにはどうしたらよいのでしょうか?
295 :
デフォルトの名無しさん :2006/04/27(木) 01:50:46
世代格差・優劣ネタ ↓ 数学ライブラリネタ ↓ 低レヴェルな卒研ネタ ←いまここ ↓ くだらないエロネタ ↓ 以下ループ
エロゲ関係でOpenGLを扱っているのですが、 マウスポインタの位置にあるマ○コやオパーイを検出するにはどうしたらよいのでしょうか?
297 :
デフォルトの名無しさん :2006/04/27(木) 08:05:13
真面目な質問いいですか? glBlendFunc(GL_DST_COLOR,GL_ZERO)を使ってマスク処理をしてるんですが、 マスクが完全な白ならば転送先の画像は何の変化もしないはずなんですが、 実際は微妙に変化してしまいます。例えば(255,255,255)が(254,254,254)になったり。 なのでスプライトの四角い境界線がぼんやり見えてしまうんです。 この問題はどうやって解決できますか?
298 :
デフォルトの名無しさん :2006/04/27(木) 08:33:34
>>297 それってintからfloatに変換される時に生じる誤差が原因じゃない?
ハードウェアの処理だから、直しようが無いような…
ゆとり世代乙
いや、浮動小数点の誤差って、
その程度で誤差出てたら全く使いものにならんよ。
>>279 テクスチャのラップ処理がCLAMP_TO_BORDERになってたりしない?
302 :
デフォルトの名無しさん :2006/04/27(木) 21:39:12
Vistaでネイティブ対応確定 誰だよ!ラッパーだから速度半分なんて嘘吐いてた奴は!!
>>302 「でふぉるとの名無しさん」って人だったよ
お前らの情報過疎っぷりは岐阜県レベル。
308 :
デフォルトの名無しさん :2006/04/28(金) 23:26:50
CでOpenGLをちみちみ勉強し始めた。 これって、つまりはどういうことが出来るわけ? 仮に3Dゲーム作るとしたら、スコア計算や結果表示までこれだけでできるの?
310 :
デフォルトの名無しさん :2006/04/29(土) 06:16:17
初心者シツモンいいでつか? DirectXからOpenGLに切り替えようと勉強してるんだけど、 OpenGLにはキーボード入力処理やサウンド処理が含まれていない事に気付きまつた。 ゲームを作るには欠かせない部分ですが、レンダリングだけOpenGLでやって 入力・サウンドはDirectInput/DirectSoundを使うのが一般的なんでしょうか?
つ【SDL】
313 :
310 :2006/04/29(土) 18:59:31
サンスコ。 こんな便利なもんがあったんすね。>SDL 作った人はエライや。
316 :
デフォルトの名無しさん :2006/04/30(日) 08:52:53
OpenGLってVRML読み込むソース 自分で書かないといけないの? あとC++でラップしたライブラリとかない?
クラスライブラリだったかどうかは忘れたがVRMLのはぐぐれば普通に見つかった希ガス。
318 :
デフォルトの名無しさん :2006/04/30(日) 20:48:18
プハハハハハハハ
319 :
デフォルトの名無しさん :2006/04/30(日) 23:58:17
プハハハハハハハ プハハハハハハハ プハハハハハハハ プハハハハハハハ プハハハハハハハ
320 :
デフォルトの名無しさん :2006/05/01(月) 18:01:14
パフパフパフパフパフパフ
平成生まれ五月蝿い
322 :
デフォルトの名無しさん :2006/05/01(月) 19:01:47
OpenGLのテクスチャの大きさに制限はありますか? 2の倍数の数字じゃなきゃいけないらしいですが、大きさに制限があるのかどうか 見つけられなかったもので…
ゆとり教育全盛期は現在の26,7歳だからな
>>322 OpenGLではなくグラフィックボード側に制限がある。
もっと調べようよ・・・
この板に限らず、平成生まれが流入してきた途端に2chの質は(より一層)低下した。 まさに害虫。駆除されるべきだ。
禿同。 おっさんだけの愛あふるる約束の地、オジン公国を建国すべし。
327 :
322 :2006/05/02(火) 12:44:06
>>324 じゃ、答えはNOですね。
OpenGL側に制限があるかどうかを知りたかったのです。
高年齢組はもう非匿名系に逃げたよ
329 :
デフォルトの名無しさん :2006/05/02(火) 18:25:41
まさに悪貨は良貨を駆逐する、だな。
92
333 :
デフォルトの名無しさん :2006/05/04(木) 07:58:06
ブレンディングについて質問です。 真っ白の上に真っ黒の円を描いたテクスチャを使ってドロップシャドウを 実現しようと思っています。 glBlendFunc(GL_DST_COLOR, GL_ZERO); を使えば、円の部分だけ転送先が黒くなるわけですが、 ソースのアルファ値によって黒さの加減を調整したいと思っています。 計算だと、 (1 - SRC_ALPHA * (1 - SRC_COLOR)) * DST_COLOR こんなブレンディングは可能でしょうか?
>>333 glBlendFunc(GL_DST_COLOR, GL_ZERO) のGL_ZEROのところで
調整すればいいんじゃないの? 白なんでしょ?
335 :
333 :2006/05/04(木) 10:45:43
(1 - SRC_ALPHA * (1 - SRC_COLOR)) をSRC_COLORにしたテクスチャを用意すれば良いんじゃない?
337 :
デフォルトの名無しさん :2006/05/04(木) 19:05:29
ププププププ
>>333 丸影を描きたいならアルファで丸く切り取ったテクスチャを用意して
普通にアルファブレンドすればいいと思うけど、
なにか乗算合成にしたい理由かあるの?
>>335 glBlendFunc(GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ALPHA)
ではだめなの?
340 :
333 :2006/05/05(金) 07:07:38
>>338 アルファ値をフレーム毎に変化させて、丸影のフェードイン&フェードアウトを
したいのです。フレーム毎にテクスチャ自体を書き換えれば確かに可能ですが、
それが一般的方法なんでしょうか?
>>339 それだと白い部分も残ってしまう…
342 :
338 :2006/05/05(金) 11:09:53
>>340 フレームごとに変化させるのは、
頂点カラー(glColor)かマテリアル(glMaterial)のアルファでいいと思う。
Lightingするならマテリアル、しないなら頂点カラー。
(Lightingするときに頂点カラーをマテリアルとして扱うGL_COLOR_MATERIALってのもある)
343 :
333 :2006/05/05(金) 11:23:46
>>342 頂点カラーを変化させたとして、その後のブレンディング方法はどうなりますか?
344 :
338 :2006/05/05(金) 12:38:20
やりたい表現によるけど、普通に glBlendFunc(GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ALPHA) でも良いんじゃないの? (というのを最初に訊いたつもりだったんだが…)
345 :
333 :2006/05/05(金) 15:38:48
346 :
338 :2006/05/05(金) 15:53:07
それ、テクスチャにアルファ入れてないだろ。 黒い部分をアルファ=1.0、白い部分をアルファ=0.0にしなさい。 フィルタによっては輪郭に白いの混ざるから、テクスチャのカラーは全面黒にしたほうがいい。
347 :
333 :2006/05/05(金) 18:38:02
>>346 「テクスチャにアルファを入れる」とはどうゆう意味ですか?
コーディングで書いてくれるとありがたいです。
をぃをぃ
>>347 ARGBフォーマットのテクスチャが作れないというのならSGIフォーマットの使えるソフト用意しろってだけの話だ。
知らないってのならいっぺん氏ね。
黒い●みたいですね SuperMicr●ですか?
352 :
333 :2006/05/06(土) 09:14:19
解決しました。ありがとうございました。
また「解決しました」だけか
>>353 まあ、いいんじゃないの今回の件は。
なんせ、解決するような問題じゃなかったんだからさあ。
355 :
デフォルトの名無しさん :2006/05/07(日) 00:02:02
白状すると 全部釣り
というか自作自演だね。このスレは3人くらいしかいないよ。
SGI破産?
MSが買収してDXとGLを融合した新しいグラフィックス技術を開発すればいい
人民よ立ち上がれ! 今こそ、我らFahrenheit勃興の時!
プレステ3の値段発表見て、DirectXの勉強を始めた俺 COLLADA用に書いてたプラグインも、FBXにしようかと再検討中 …いくらなんでも高すぎるよ。普及するのかね マジFahrenheitあれば今頃なぁ…もっとも今はそんなに違わないな。GLもDXも
今後は据え置き型ハードはPCに移行するから Direct3DもOpenGLもどちらもやっておいて損はない。
OpenGLはともかく、GLは死んだということでつか?
>>358
SGIとOpenGLは関係ないと思う
>>364 ホント?OpenGL Extension RegistryとかSGIがメンテしてなかったっけ?
366 :
デフォルトの名無しさん :2006/05/10(水) 16:44:32
下流社会の中に出来上がった集団そのものが一般社会の倫理や常識から 懸絶した世界を形作り、時として中津川での殺害事件のような途上国並みの犯罪を生む。 自らの狭い世界へと閉じていく平成生まれは、まさにこうした典型的なパターンが当てはまる。
>>366 おまえのコンプレックスはここに書いても直らんぞ
ネタにマジレスかっこいい
369 :
デフォルトの名無しさん :2006/05/11(木) 20:28:28
>>365 そうそう。SGIが本当につぶれたときにはopengl.orgに移管ということに
なると思う。
ざっと読んだが ここのOpenGLスレに今まで残ってるのは 本当に3流以下の奴らばかりだな 何の技術も無いんだねw クズどもが、何をやっても無駄なんだからさ 氏んじゃえよwwwwwwww
Vistaになれば 消えるべき宿命の技術 OpenGL
>>333 もう解決しちゃったから意味無いかもしれないけど、
glTexImage2D関数の三つ目のパラメーターにGL_ALPHAを指定すれば、
グレースケールのbitmapからアルファ入りテクスチャを作成してくれるよ。
コーディングだけで解決できるから一番簡単だし、
何故誰も教えてあげなかったのかが不思議。
374 :
デフォルトの名無しさん :2006/05/14(日) 11:37:18
>>373 それはアルファ入りテクスチャではなくアルファのみテクスチャだろwww
やっぱこのすれはカスばっかだなwwwwwww
375 :
デフォルトの名無しさん :2006/05/14(日) 12:03:04
>>372 PS3と共に
消えるべき宿命の技術 OpenGL
377 :
デフォルトの名無しさん :2006/05/14(日) 12:46:23
>373=アホ
>>373 少なくとも白と黒を入れ替えたテクスチャ作らないと
>>333 がやりたかったことは実現できないと思う。
まあ、テクスチャ自体をプログラムで作ってしまえば
何だってコーディングで解決できるけど、
一番簡単とは言い難いな。
>>374 333のやりたい事はアルファのみのテクスチャで解決できるんだけど…?
>>378 確かに白と黒は入れ替える必要はあるね。でもそれだけでいいんだから、
彼の状況ではそれが一番簡単でしょ。アルファ入りの意味が分からなかった所を
みると、テクスチャはbitmapだろうし。
「アルファ入りテクスチャの意味が分からない」というのが想定外だったので そこまで思いつきませんでした。 テクスチャの白黒を入れ替えることの難易度と その色をテクスチャのアルファチャンネルに入れることの難易度に そんなに違いがあるとは思っていないし。
381 :
デフォルトの名無しさん :2006/05/14(日) 17:13:16
お騒がせしております。
また平成生まれの低能ゆとり世代
>>370 の馬鹿が錯乱しております。
真性の知的障害児につき、何卒暖かい目で見守ってやってください。
>>381 「平成生まれの低能ゆとり世代」と言うのは、頭が頭痛とか腹痛が痛いと
言うのと同じで、かなりくどいと思う。
平成生まれ粗≒低能≒ゆとり世代
昔は、OpenGL MLも盛りあがったもんだが、 今は誰もこない そしてSGIの破産 OpenGLの時代 の終わりは近い
DirectXとOpenGLの両方を知ってる方に質問です。 DirectXでは100個のパーティクルを描画するのにDrawPrimitives関数を 100回呼ぶよりも、100個のパーティクルを一つのメッシュにまとめてから DrawPrimitives関数を1回呼ぶ方が全然スピードが速いというテクニックがありますが、 OpenGLではそのようなテクニックや制限はありますか? OpenGLにはDrawPrimitivesに相当する関数は無いですが、例えば glBegin〜glEndの回数が少ないほうが速いというような事はありますか?
>>385 1.glDrawArrays
2..glDrawElements
3.glCallList
4.glCallLists
>>386 色々あるんですね。
それらの関数を使った方がglVertexなどで描いていくよりも高速なのでしょうか?
3D用のAPIを使うメリットは、第一にスピードである。 だが、VistaになればDirectXのラッパーでしかない OpenGLは描画スピードが大幅に落ちてしまう。 3D用APIとしては、これは致命傷である。 Vistaになれば、Windows上ではOpenGLは使われなくなるだろう。
ひでえ状態だなwwwwwwww
互換性無いってのがVistaの売りじゃないの?
・・・GLがラッパなんて僕は認めない!
vistaのラッパ云々は既に撤回されてる。
WinよりPS3が気になる ダメですか
へー、OpenGL って Vista でも共存出来るのか。俺も知らんかったわ。 つか ARB が Khronos に移管されたのも知らんかった。浦島太郎状態だな... Khronos と言えば、みんな Collada って使っているの? Blender に Collada Exporter があったから調べてみようと思ってたんだけど。
399 :
デフォルトの名無しさん :2006/05/17(水) 00:05:33
ぶははははは。 このスレで叩かれてた平成生まれの低能ゆとり世代(←これで1セット)が遠吠えしまくり。 しかもVistaでGLが尻に敷かれるなんていつの話だ。ぶははは。
質問させてください。 Framebuffer Objectを使っているんですけど、 そのバッファ上の特定の矩形範囲を別の範囲にコピーしたいのですが、 普通のフレームバッファと同じように glCopyPixels() でできるものでしょうか。それとも他の方法が必要でしょうか。
とりあえずやってみれば?
とりあえずやるのは絶対嫌です。
とりあえず死ねば?
思い切って死んでみたら解決しました!ありがとうございました!!
ナンマンダブナンマンダブ
思い切って死んでみたらって方法かいてあるだろ 死ねば解決するって理解しろよ
一応混じれ酢するけど 報告者はだれ?
俺だよ、俺。
プロは生きろ!アマは死ね!
酷い!海女さんに謝れ!
412 :
デフォルトの名無しさん :2006/05/20(土) 21:54:39
このスレはもはや平成生まれによって完全に劣化させれたな。 晒しage
もう昭和の時代じゃないんだよ、おっさんwww
414 :
デフォルトの名無しさん :2006/05/20(土) 22:24:43
413 名前:デフォルトの名無しさん :2006/05/20(土) 22:13:07 もう昭和の時代じゃないんだよ、おっさんwww 今、ひどい低能ゆとり世代を見た。
>>413 無能者のお前の時代でもねぇよカスごときが
416 :
デフォルトの名無しさん :2006/05/20(土) 22:51:41
・線形代数の「せ」の字も知らず、法線すら計算できない馬鹿 ・モデル表示してアニメーションさせるのに常人の5倍以上要する低能 ・低質なセンチメンタリズムを撒き散らして逃走した在日朝鮮人
OpenGLがユーザー数を復活できるかどうかは、 PS3の普及にかかっている PS3 が普及 = ソフトウエア産業でユーザー数増加 PS3が普及しない = 研究者御用達only
418 :
デフォルトの名無しさん :2006/05/20(土) 23:22:19
420 :
デフォルトの名無しさん :2006/05/21(日) 00:08:50
アホばっかだなw 古い物にしがみつく人間に、未来は無いww
でもさぁLinux使うとGL一択っていうのは何とかしてほしいよなぁ 使うのめんどいんだよGL
glslをやっても、対応してるグラボがまだまだ足りないんだよなー それにVistaのエアロでは、うまく対応できんしな もうOpenGLは限界 普通の奴なら、すぐに他の技術に移動できるわけだが それでも、ここのスレに残ってる連中は、他のAPIには対応できない 3流以下のPGばかりだからな
Vista から OpenGLは 低速API である
>>423 ほかの技術と簡単に言うがWindows以外のプラットフォームじゃ代替え技術が無いじゃないか。
426 :
デフォルトの名無しさん :2006/05/21(日) 02:06:36
Vistaから低速API
427 :
デフォルトの名無しさん :2006/05/21(日) 02:24:43
あれほどGL、GLと吠えていた平成生まれの低能ゆとり世代は今ではアンチGL。 さすが頭の弱い在日の子孫だけあって日和見主義者っぷりは見ていて恥ずかしい。 平成生まれの低能ゆとり世代の特徴: ・線形代数の「せ」の字も知らず、法線すら計算できない馬鹿 ・モデル表示してアニメーションさせるのに常人の5倍以上要する低能 ・低質なセンチメンタリズムを撒き散らして逃走した在日朝鮮人
428 :
デフォルトの名無しさん :2006/05/21(日) 02:33:35
・線形代数の「せ」の字も知らず、法線すら計算できない馬鹿 →言うまでも無く馬鹿なのでシェーダは理解出来ずにコピペだが、 法線すら計算できないのでロクにシェーディングが出来ない。 ・モデル表示してアニメーションさせるのに常人の5倍以上要する低能 →知的障害児ゆえ右脳の空間把握・処理能力に大幅に劣る。 したがって、3D思考はおろか2D思考すら危ぶまれるほどのIQの低さ。 ・低質なセンチメンタリズムを撒き散らして逃走した在日朝鮮人 →底辺校・低偏差値ゆえ極めて常識的な科学知識に欠け、 己のキモイ感情論―センチメンタリズム―でもってさらに己の狭い世界へと引き篭もる。
>>417 PS3 は PSGL でしょ。OpenGL|ES 1.x を Sony が独自に拡張した奴。
シェーダーも glsl じゃなくて Cg だ。
Windows な仕事はしてないから Vista はどうでも良いかな。
家のPCではグラボにMatroxのG400を使っています。 OpenGLを使うとき、このグラボでは ・太さ2以上のスムージングされた直線を描画できない(太さが1になってしまう) ・太さ約10以上のスムージングされていない直線が描画できない(太さに限界がある) ・ピクセルシェーダーが使えない(と思う) という、制約があります。 この環境下で任意の太さの直線をアンチェリ付きで描画したいのですが、 何か良い方法はありませんか?
>>427 > あれほどGL、GLと吠えていた平成生まれの低能ゆとり世代は今ではアンチGL。
> さすが頭の弱い在日の子孫だけあって日和見主義者っぷりは見ていて恥ずかしい
ということは、裏を返すと427=ヤマタでFA?
>>430 そのPCは2Dエロゲ専用にして、nVidiaボードの乗ったOpetoronマシンを買ってくる。
どうでもいいが、PointSprite使ってると、 VertexShaderでTEXCOORD0に値渡しても FragmentShaderではTEXCOORD0がPointSprite(ビルボード)する為のテクスチャ座標に 自動的に書き換えられてしまうのね。 しかたないからTEXCOORD1にデータ渡すようにしてるが。 いや、Cgの話。GLSLでも同じかな。
未だにG400使ってるやついるんだよね。 発色いいらしくて、絵描きに多い。 ゲーム作る側からしたら、いい迷惑。
>>436 無問題だろ?G400辺りを使っている人々は分を弁えてるを。
MatroxのGLドライバは当時から出来が悪いので有名だった気がするがな しかも、標準配布物に入ってなくて、 別で置いてあるGLドライバ入れないとアクセラレーション効かないとかあって それ入れてない初心者から 何だかわからないけど遅いとか言われた日には「知るか!」てなもんだったな テクスチャも256x256の制限とかまだ残ってるカードじゃなかったっけ?
まだParhelia買えない子がいるのか
>>436 >>439 これはビジネスアプリでの使用を考えているので、
できればOpenGLが動くボードすべてに対応させたいのです。
>>437 ですね
>>438 256x256制限はないです。
ただ、サイズ大きめのαチャネル無しRGBテクスチャを作ると、
描画がうまくできません orz
>>440 ビジネスアプリがサポートする環境としてG400〜G550なんかを
「OpenGLが動く」と定義するのは、いかがなものか?
すみませんでした。 DirectXにします。
442が本人かは知らんが、G400はD3Dで動かす方が高速だった筈
CarmackはもうGLで作らんのかねぇ…
>>441 OpenGLのゲームは動きますよ。
って、そういう話ではなくて?
>>442 君はだれ?
>>443 そういうことを実験してみるのも面白そうですね。
ただ、今回の目的でDirectXを使うのはちょっと・・・
>>444 もうLinuxやMacで動くことしか、OpenGLの利点は残って無いでしょうね。
(´・ω・`)
>>445 > もうLinuxやMacで動くことしか、OpenGLの利点は残って無い
でも、それって結構大きな利点だったりする。
GeckoのグラフィックライブラリはCairoに移行するらしいから、
この先、Firefoxの3DはOpenGLが担いつづける事になるだろう。
http://cairographics.org/ 現行ブラウザに3D描画なんて搭載されてないけどな。
cairo のバックエンドって GL だけじゃなかったような。
>>446 glitzが、あの忌々しいピクセルシェーダーさえ使っていなければ
cairoの使用も考えたのですが・・・
何にせよcairoはすばらしいです。
ソースも参考になりますし。( ´ー`)
>>447 GDIからPDFまで、ほとんど何でもありですね。
>>446 「我々の作りたいものはゲームだ!」とか言ってたけど、
そういうのはD3Dにまかせて、
もっとOpenGLの利点を生かした方向に進んでいけばいいのにね。
Khronosグループに策定団体が移ったことで、PCよりもむしろ組み込み向けの 普及の方が今後進む気がする >GL
組み込みって、携帯とかゲーム機は既に普及してるんじゃないの。OpenGL|ES が。
452 :
デフォルトの名無しさん :2006/05/31(水) 03:08:07
海外OpenGLプログラマー達の悲鳴 vistaでは OpenGL performance will be significantly reduced - perhaps as much as 50% OpenGL on Windows will be fixed at a vanilla version of OpenGL 1.4 No extensions will be possible to expose future hardware innovations
453 :
デフォルトの名無しさん :2006/05/31(水) 07:52:19
>>452 いつの話をしているんだ? 少なくとも、1点目についてはVista上でも
ICDがサポートされることになったんだが。
>>453 もちつけ。ICD経由でOpenGL使うときは1.4の制限はないぞ。
456 :
デフォルトの名無しさん :2006/06/01(木) 07:58:35
>>454 いや、そうなんだが、MSが正式にサポートしないということは、
OpenGL32.libには1.4以降のシンボルが定義されていないということで、
今までどおりwglGetProcAddressを使うかGLEWなどのラッパーライブラリ
を使う羽目になってしまい面倒臭い。まぁ拡張機能を使う上では
これらはどうせ必須になってしまうんだが。
今まで(1.1+α相当)よりずいぶんましになったのでいいんじゃね?
458 :
デフォルトの名無しさん :2006/06/02(金) 19:52:14
glCallList使ったら、使う前より遅くなった。 こんな事ありえる?
速くなったことは無いな。
ディスプレイリストってglVertex3fとかで1頂点ずつ送るしか無かった時代の遺物じゃね? Vertex Buffer Objectが使えて、glDrawArrayとかで一気に描ける今となっては、速くなる要素が見当たらない。
gluTess*使う時は結構役に立つけどね。
実は測ってみたらDisplay Listのが速いことが多かった、って どっかで見たような気がしたんだが場所が思い出せない
463 :
デフォルトの名無しさん :2006/06/03(土) 19:15:56
比較的最近のデータではあるが・・・ 今はどうかな。やってみるのが一番なのだろうが。
465 :
デフォルトの名無しさん :2006/06/04(日) 06:54:04
質問させてください。 openGLの勉強のためにサンプルを見てコンパイル&動作させてたら、 以下のようなエラーメッセージが出ます。 どなたか理由を御存じの方いませんか。 $> ./a,out freeglut (./a.out): Unable to create direct context rendering for window './a.out' This may hurt performance. $>
う、う、う・・・・・・・・ 人 ノ⌒ 丿 _/ ::( / :::::::\ ( :::::::;;;;;;;) \_―― ̄ ̄::::::::::\ ノ ̄ ::::::::::::::::::::::) ( ::::::::::::::;;;;;;;;;;;;人 / ̄――――― ̄ ̄::::::::\ ( :::::::::::::::::::::::::::::::::) \__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ
468 :
デフォルトの名無しさん :2006/06/04(日) 15:27:30
質問させてください。 openGLの勉強のためにウンコのモデルを読み込んで表示させたんですが どうにもリアルなウンコに見えません。リアルなウンコを描画する方法を教えてうんこ。
469 :
デフォルトの名無しさん :2006/06/04(日) 15:29:08
うんこを知るにはまずうんこになって学べ
いやいや、うんこの前に下痢気味のうんちをよく吟味するべきだ。
472 :
デフォルトの名無しさん :2006/06/05(月) 13:17:42
466> なるほど、リンク先も見ましたがそういうことですか。 おっしゃるとおり、open SuSE 10.1 でノートブックで 動かしていて、3Dアクセラレーションとかないです。 ありがとうございました。
473 :
デフォルトの名無しさん :2006/06/06(火) 07:51:50
初心者質問なんですが… 練習の為にglColor4fとglVertex3fを使って色付きポリゴンを表示させています。 ところがライティングを付け足した所、ポリゴンの色がすべてグレー(ライトのdiffuse色そのまま) になってしまいました。ポリゴンの本来の色を残したままライティングを付け足すには どうしたらよいのでしょうか?
474 :
デフォルトの名無しさん :2006/06/06(火) 08:02:35
>>473 赤本読め。
マジレスすると、カラーマテリアル使うかglMaterial*()使って
ポリゴンにマテリアルを割り当てろ。
475 :
デフォルトの名無しさん :2006/06/06(火) 15:51:43
青、赤、緑の3つの歯車がまわっています。 WindowsXP+Firefox (jre-1_5_0_04) Redhat9+Firefox Redhat9+mozilla (jdk-1_5_0_04) では同じ画像がでます。
歯車表示されたよ。WindowsXP+IE
478 :
デフォルトの名無しさん :2006/06/06(火) 18:40:01
WindowsXP + cygwin/X + Vine Linux + Firefox1.5.0.2 これで回った。でも WindowsXP + cygwin/X(XWin_GL) + Vine Linux + Firefox1.5.0.2 これだと回らなかった。
>>474 レスどうもです。マテリアル使ったら解決しますた。
480 :
デフォルトの名無しさん :2006/06/12(月) 00:08:57
無料のボーランドC++でopenGLのプログラムをつくっているのですが、 ライトを使うため、glEnable(GL_LIGHTING)と書くと エラーとなり、 例外’ハンドルされていないWin32の例外’が発生しました。 と表示されます。 なぜかわかりますか? libあたりが原因でしょうか?
もうボーランドやめなよ VCタダで手に入るんだし
OpenGL使うならGCCでしょ。MinGWあるんだし。
OpenGL使うならGCCでしょ。MinGWあるんだし。
VCかGCCがディファクトになりそうだよね。 今となってはBCCは標準準拠度も低いし。
>>485 Khronos Group Chapter 11 で検索しても出てこないんだが
>487-488 何こいつファビョってんの(´,_ゝ`)プッ
>>487 ,488
幸せな人の相手しちゃダメだよ。近寄らないが吉。
ねぇ、GL_ARB_texture_compressionって誰か使ったことある?
(´,_ゝ`)プッ
497 :
デフォルトの名無しさん :2006/07/04(火) 22:17:41
誰かロケット作成したプログラムを教えてください!
(´,_ゝ`)プッ
499 :
デフォルトの名無しさん :2006/07/05(水) 00:16:17
まずは日本語から勉強してください!
500 :
デフォルトの名無しさん :2006/07/05(水) 00:52:42
面白かったのは、「OpenGLの命令はGPUの内部でDirectXの命令に変化するからOpenGLは遅い」 とか言ってるバカ。 命令はすべて「機械語」にデコードされるというのにDirectXもOpenGLもあるかってのw Direct3Dにしかない固有機能をOpenGLでエミュレートするのでない限り、 同じ効果が得られる命令には同じ機械語でデコードされるのに
501 :
デフォルトの名無しさん :2006/07/05(水) 05:36:57
面白かったのは、「OpenGLの命令はGPUの内部でDirectXの命令に変化するからOpenGLは遅い」 とか言ってるバカ。 命令はすべて「機械語」にデコードされるというのにDirectXもOpenGLもあるかってのw Direct3Dにしかない固有機能をOpenGLでエミュレートするのでない限り、 同じ効果が得られる命令には同じ機械語でデコードされるのに
502 :
デフォルトの名無しさん :2006/07/05(水) 16:26:46
「機械語」でDirectXの命令が呼び出されるんじゃないの? ホントにそうかは知らんけど
503 :
デフォルトの名無しさん :2006/07/05(水) 20:25:29
アホばっかだな ま、それが2chか
>>502 どうしようもねぇな。
DirectX,OpenGL以前にプログラムを1から勉強し直す必要がある。
普段、Visual Stdio .NET 2003でビルド(ctrl+shift+b)して、実行しています。 この方法だと、VS2003が入ってないPCだと、プログラムを実行出来ないです。 Debug/Releaseフォルダにある.exeファイルを実行しても起動してくれないし・・・ VS2003が入ってないPCで開く場合はどうすればいいのでしょうか?
エスパー!
glut32.dllがパスの通ったフォルダにない。
>>507 もしそうだとしたら、今OpenGLのプログラムを書いてるこのPCなら、
Releaseフォルダ内の.exeを実行すればなら動いてくれると思うのですが、
このPCでも直接.exeを実行するだけじゃ動いてくれません・・・
>>509 エラーメッセージもなにも、.exeクリックしても何も起こりませんが?
511 :
デフォルトの名無しさん :2006/07/05(水) 22:59:46
(^ё^)
もういいです。あなた方には失望しました。
なんだ、このスレの住人は無能ばっかか
何を今更
もうこの流れにはうんざりだよ。
msvcr71.dll msvcp71.dll あたりが無いんじゃない?
518 :
デフォルトの名無しさん :2006/07/05(水) 23:57:29
519 :
デフォルトの名無しさん :2006/07/05(水) 23:58:12
DependencyWalkerで足りないDLLがないか探してみろよ
OpenGL以前の問題だ馬鹿たれ
>>504 結局ビデオカードのドライバーを通してDirectXとOpenGLの命令が送信されるで良いの?
>>521 GPUはDirectXのインタプリタです
523 :
デフォルトの名無しさん :2006/07/06(木) 21:58:27
簡単な画でいいのでopenGLでグラフィックのロケット(円柱と円錐で)を作成するプログラムをかいてもらえませんか? OSはlinuxです。
マジレスすると自分で書け
525 :
デフォルトの名無しさん :2006/07/07(金) 03:42:44
>>523 あなたのやりたい事はモデリングと言います。自分でぐぐって解決してください。
よ〜し、いい感じで2chが馬鹿の掃き溜めになってきてるわいウッヒッヒ
>>524-
>>526 知らねーんだったら黙ってろよ(プ
口だけ野郎の知ったかぶりが!!
円柱と円錐を使った単純なロケット作れない奴なんてこのスレにはいないだろ
それは国防上問題だな。
531 :
デフォルトの名無しさん :2006/07/11(火) 08:37:22
>>528 のいいトコ見てみたい
532 :
デフォルトの名無しさん :2006/07/11(火) 13:00:10
無理は承知
533 :
デフォルトの名無しさん :2006/07/11(火) 21:36:47
あの、glcolor3f(1.0, 0, 0)だと色がつくのですが glcolor3i(255,0,0)だと色がつきません。 整数を使いたときはどうすればいいのでしょうか? 何か事前に宣言するのでしょうか?
すいませんglColor3ub()で解決できました。
537 :
デフォルトの名無しさん :2006/07/13(木) 22:13:24
・レンダーターゲットにテクスチャを指定して、 ・レンダリングの中でそのテクスチャ使って を繰り返したらどうなる? ピクセルシェーダで前回のレンダリング結果をそのまま使えるのかどうかが知りたいんだけど。 途中から値が変更されて変な画像にならない?
538 :
537 :2006/07/13(木) 22:31:27
自己レス。 たぶん・・・変になる。 数値を見てるだけだからなんとも言えない。
>>538 それ面白いな。合わせ鏡みたいなもんか。
実際どうなるんだろう。ドライバやGPU間で挙動が違うような気もするが、
GLの仕様でみんな同じ挙動になるなら、何かに使えそうだ。
OpenGLのソースってどこで手に入るの?
>>540 OpenGLのソースといってもな・・・。
Mesaとか調べてみたら?
542 :
デフォルトの名無しさん :2006/07/14(金) 16:12:47
描画の後に glReadBuffer(GL_COLOR_ATTACHMENT0_EXT); glReadPixels(0,0,1,1,GL_RGBA,GL_HALF_FLOAT_NV,data); ってやって結果を取得したいんだが 配列dataの内容がまったく変わらない。 なんかエラーが起きているならそれを調べたいんだが glReadPixelsの戻り値がvoidなんでよく分からない。 エラーを調べる関数かなんかない?
>>541 mesalib落としたらソースも入ってたよ。さんくす!
ソース見てプロジェクションマトリックスの式を勉強しようと 思ったけど、高速化のためかぐちゃぐちゃなコードになってた・・・┐( ´д)=3┌
>>537 仕様の4.4.3にあった。
未定義だそうだ。
で、思ったんだが、描画対象とサンプル対象のテクスチャを
ダブルバッファ的に交互に切り替えってったら同じことできないかな
アタッチし直す分遅くなるかもしれないけど
glutを用いてプログラムを書いています。 そして、ウィンドウを閉じる時はESCが押されたらウィンドウを閉じプログラムを終了しちゃってます。 この場合、malloc等でメモリを確保して他場合free()を書く場所が分からないので開放できません。 プログラム終了時に呼び出す関数とかって用意されていないのでしょうか? 自分で作る場合はどのようにすれば良いのでしょうか? よろしくお願いします。
>>548 ありがとうございます。
言われてみれば、簡単な事でしたね・・・・すいません。
それ自分も経験したYO。しょうがないからOpenGLに書き直した。 でもglut使ってる時より色々出来るし結果オーライって感じ。 NeheにWindow作成のサンプルあるから簡単に移行できますよ。 glutで終了時引っ掛けることが出来るかどうかは自分には分かりません。 すみませn
551 :
550 :2006/07/17(月) 10:59:02
へーできるんだ...orz
552 :
547 :2006/07/17(月) 11:38:22
>>550 自分もいずれは、glutを使わずにプログラムを組もうと思ってます。
なので、参考になります。
レスありがとうございますm(_ _)m
Neheの日本語訳が非常に欲しいですね
応援してるぜ。
てか、Heheのソースがコンパイル出来ない・・・ 当方、VS2003使ってるんだけど、VS用のコードをDLして来て、 .vcprojをダブクリすると変換が必要と出るから変換しコンパイラすると普通に通る でも、そのコードを自分で作ったソリューションに追加してコンパイラするとエラーがでる・・・ これって、プロジェクトの作り方が悪いのかな? Win32 プロジェクトで作ってるんだけど。。 a.cpp(403) : warning C4244: 'return' : 'WPARAM' から 'int' に変換しました。データが失われているかもしれません。 リンクしています... a.obj : error LNK2019: 未解決の外部シンボル _gluPerspective@32 が関数 "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glLoadIdentity@0 が関数 "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glMatrixMode@4 が関数 "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glViewport@16 が関数 "void __cdecl ReSizeGLScene(int,int)" (?ReSizeGLScene@@YAXHH@Z) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glHint@8 が関数 "int __cdecl InitGL(void)" (?InitGL@@YAHXZ) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glDepthFunc@4 が関数 "int __cdecl InitGL(void)" (?InitGL@@YAHXZ) で参照されました。 a.obj : error LNK2019: 未解決の外部シンボル __imp__glEnable@4 が関数 "int __cdecl InitGL(void)" (?InitGL@@YAHXZ) で参照されました。 ・・ ・ ・ ・ Debug/a.exe : fatal error LNK1120: 外部参照 14 が未解決です。
リンカオプションで追加の依存ファイルに opengl32.lib glu32.lib を書け。
>>556 オオ!出来ました!ありがとうございますm(_ _)m
さて、辞書片手に頑張るか・・・
それは時間の無駄ジャマイカ。関数を検索したほうが
な、なるほど。
nVidia SDK9.5 のHigh Dynamic Range RenderingのソースをVisual C++ 2005 でコンパイルしようとしてるんだけど、なんか エラー2error LNK2005: "class std::basic_string<char,struct std::char_traits<char>, class std::allocator<char> > __cdecl std::operator+<char,struct std::char_traits<char>, class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>, class std::allocator<char> > const &,char const *)" (??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU? $char_traits@D@std@@V?$allocator@D@2@@0@ABV10@PBD@Z) は既に nvIO.lib(nvObjReader.obj) で定義されています。msvcprt.lib ってリンクエラーになるんだよね。 誰か回避法知らない?
OpenGLに関係ねえよ。 リンクオプションいじってリビルドでもしとけ。
>>560 Visual C++ 2003でビルドできた。nVidia SDK9.5は2005にはまだ対応できてないみたいだ。
>>561 すまん。直接の関係はないね。でもSDKにもOpenGLの色んなサンプルがあるので、
そのビルドにまつわる情報があっても無駄ではないかも。
563 :
デフォルトの名無しさん :2006/07/20(木) 20:42:12 BE:222341928-#
nVidia SDKについて詳しく教えてください。これ単体で3Dプログラムが作れるのでしょうか。
565 :
デフォルトの名無しさん :2006/07/20(木) 22:43:55
詳しく教えてって言ってるんです
も、もっと優しくして
cygwinのsetup.exeでインストールしたWindowsネイティブなglut(opengl-1.1.0-8)で、 /usr/share/doc/opengl-1.1.0/GLUTexamplesにあるソースをコンパイルして実行し、 glutのウィンドウを×で閉じても、プロセスが終了しません。-mno-cygwinや-mwindowsを つけても同様でした。 また、/usr/lib/glui-examples/ にあるサンプルも同じです。 自分で書いたプログラムでも、×を押したときに、プロセスを終了するようにしたいのですが、 どのようにしたらいいのでしょうか。
自分でウインドウ管理するか SDLと組み合わせなっせ
570 :
デフォルトの名無しさん :2006/07/21(金) 09:21:22 BE:111170742-#
nVidia SDKについて詳しく教えてください。
臭う。 激しく臭うぞ。 キモイゆとり世代の汚臭がな。
573 :
デフォルトの名無しさん :2006/07/21(金) 20:01:09
nVidia SDKについて詳しく教えてください。
574 :
デフォルトの名無しさん :2006/07/21(金) 20:02:13
いや、このSDKでデモだけでなく入出力がある単体のゲームが作れるのか、WinならDirectXと絡める事が出来るのか、などなど
575 :
デフォルトの名無しさん :2006/07/21(金) 22:52:37
avi や、mov なんかのファイルを回転/拡大縮小 しながら再生したいのですが、 OpenGL でできそうでしょうか? 開発環境は Linux + C を予定していますが、使えそうなライブラリがあるならば Windows になるかもしれません。 OpenGL 以外でも、使えそうなライブラリがあれば教えてください。
>>575 avi, movは厳しいが、mpgならSDL+smpegでどうにか
Windowsでaviなら素直にDirectShowのほうがいいんじゃね?
・マルチプラットフォーム ・コーディングはC++ (OOPスタイル) の条件でGLプログラムを作りたいと考えています。 もしオススメのサンプルやライブラリなどあればご教授ください。 よろしくお願いいたします
579 :
デフォルトの名無しさん :2006/07/22(土) 02:44:53
(OOPスタイル)
>>577 俺は今Neheを見てる
だから君も見るんだ
どちらが先に人造人間(猫耳スタイル)を作り上げるか競争だぞ
シェーダで動的フローを使おうとするとコンパイラに怒られるのは仕様ですか?
あ、Cgでarbvp1プロファイルを使ってます
ここで質問していいのか分かりませんが、OpenGLを使用しているのでここで質問させてください。 今、FPS処理をtimeGetTime()を使い行ってます。 nVIDIAの設定のリフレッシュレートが60になっている状態で、 OpenGLの描画回数を30とか60未満にしてしまうと、何故かCPUに負担をかけてしまうらしく100%になってしまいます。 ここで、OpenGLの描画回数を75とか60以上にすると、CPUは安定し20前後になります。 上記の理由からソースが悪いのではなく、nVIDIAとの問題だと思うのですが、何故このような事になってしまうのでしょうか? 解決策等分かる方いましたら、よろしくお願いします。
30pfsよりも75fpsのがCPUに不可かからないなら、不思議だけど幸せだからそれでいいじゃん。 で、たぶんソースが悪いんだよ。
いや、それは例でして、設定したリフレッシュレートよりも大きい値をFPSにすると不可が掛からないんです。 NDIVIAのリフレッシュレートを60にして、FPSを75(60以上)にすると、 OpenGLの画面はNDIVIAで指定した60回で描画されます。 説明が下手で申し訳ありません。
586 :
デフォルトの名無しさん :2006/07/22(土) 20:30:30
timeGe(ryの後に何も処理しない場合にSleep関数を挟むといいよ
リフレッシュレート以上のFPSを指定して同じ現象が起きるのは多分垂直同期が有効になっていてドライバ内部で同様の処理がされているから
588 :
584 :2006/07/22(土) 22:02:24
>>585 不可が掛からない?説明が下手って言うか、自分で書いた文章を1度も読み直してないだろ?
多分同様に自分で書いたソースコードも一度も見直してないからだよ。
せめてそのtimeGe(ryを使ってFPS調整してるとこのソースくらい出さないと。
SleepしないでtimeGeをぶん回してるから100%になってる気がするけど。
文字とか数字を表示するのに、CreateFontで設定し、可変引数の関数に渡して使うのは邪道でしょうか? っていうのも、普通はテクスチャを使ったり別のやり方があるのかと思ったからです。
590 :
デフォルトの名無しさん :2006/07/24(月) 14:14:45
nVidia SDKについて詳しく教えてください。
591 :
デフォルトの名無しさん :2006/07/24(月) 17:52:36
VistaでOpenGLの排斥に拍車がかかるようですが、コメントを伺いたい。
やまたまえ^^
GLはもう終わった技術
595 :
デフォルトの名無しさん :2006/07/25(火) 23:14:50
バーカ、まだ始まってもいねぇよ
パチンコで使われてるから たぶん日本では終わらないよw
::glVertexPointerと::glNormalPointerを使用して それぞれで別のインデックスバッファで同時にレンダリングするような拡張はありますか?
PS3もOpenGL(ES)2.0 カーナビもOpenGL ES パチンコもOpenGL ES…?
パチンコはドリームキャスト、最近はPS2のチップ使ってなかったっけ。 PS2はLinux動くから、Linuxの互換GL(名前忘れた)が多分動くだろうけど、 PowerVRは対応してるのか?
>>599 mesaのことか?
しかしPowerVR懐かしいなおい。第二世代使ってたよ。
601 :
598 :2006/07/28(金) 23:01:29
もしかしたらカーナビもSH4+PowerVRかもしんない。 でもPowerVRのアーキでOpenGLのアクセラレーションできるのか?
簡単な3Dプログラミングをやってて質問があります。 普通のゲーム画面とかにあるステータスゲージみたいなモノって常に手前に表示されてますけど、 あれってどうやっているのでしょうか? 自分的には、 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); //ここでステータス以外のポリゴンの描画 ここでディプスバッファをオフにしたい //ここで一番手前に表示するステータステクスチャを貼るポリゴンを描画 みたいな感じかと思ったのですが、あっているのでしょうか? 使う関数なども教えていただけると助かります。
603 :
デフォルトの名無しさん :2006/07/29(土) 14:56:53 BE:667023168-2BP(0)
ステンシルバッファさ
Z比較オフ
ぶっちゃけ深度バッファをマスクしておけば描写の順番を決め打ちする必要はない。
606 :
602 :2006/07/29(土) 17:01:03
>>603-605 皆さんありがとうございますm(_ _)m
教えていただいたステンシルバッファについてはググって使い方を調べ試してみましたがイマイチ分かりませんでした・・
必要なソースがあれば書きますので、具体的にどのようにやればいいのか教えてください。
お願いします。
glEnable(GL_DEPTH_TEST); // 3D描画 glDisable(GL_DEPTH_TEST); // 2D描画
>>607 オォォォ!出来ました!!
ありがとうございましたm(_ _)m
ハ_ハ ('(゚∀゚∩ いいんダヨ☆ ヽ 〈 ヽヽ_)
モデルの頂点とインデックスバッファを使ってレンダリングしてるのですが 処理が遅くて困っています。(fpsはDirectXと比べると1/2〜1/3くらい) 現在は glVertex3fv( Vertex[ index[i] ] ) みたいな感じで インデックスバッファの数だけ処理しているので頂点演算に無駄があります。 (一応、ディスプレイリスト使用。) GL_TRIANGLES_STIRPへの最適化は難しそうですし… OpenGLでインデックスバッファを使ったりとか、 もしくは何か良い最適化は無いでしょうか?
ディスプレイリストで速くならないのなら頂点配列でも使えばいいんじゃね? 対応しているのならCVAなりVBOも試してみ。
>>612 thx.
多分、自分が欲しい機能は glIndexPointer() だと思う。
うまく動かないと思ったらディスプレイリスト非対応コマンドなのね…
glIndexPointer はググってもほとんど出てこないから
使っている人が少ないみたいだし、困ったね。
もう少し試して見る。
頂点配列はクライアント側なんだからディスプレイリストで保存できないのは当然でしょ。
>>611 >現在は glVertex3fv( Vertex[ index[i] ] ) みたいな感じで
>インデックスバッファの数だけ処理しているので頂点演算に無駄があります。
glVertexPointer( 3, GL_FLOAT, sizeof(Vertex[0]), Vertex );
glDrawElements( GL_TRIANGLE_STIRP, num_of_index, type_of_index, index );
>GL_TRIANGLES_STIRPへの最適化は難しそうですし…
NvTriStripを使え。
VBO使えるなら、絶対使え。
glIndex〜は、カラーインデクスのことで、
いまどきカラーインデクスモードなんて使っている奴はいない。
617 :
611 :2006/08/05(土) 16:49:18
頂点配列を使ったら逆に遅くなりました…42fps→36fps 頂点数で3倍以上セットしてるディスプレイリストの方が速いって どういう内部処理してるんだろ? >NvTriStripを使え。 非nV環境なので無理かなと。 >VBO使えるなら、絶対使え。 頂点配列と組み合わせたら速くなりそうな気はしますが 自分の環境で使えるか調べてみないと。 >glIndex〜は、カラーインデクスのことで、 glIndexPointer() は指標配列とあります。 これはインデックスバッファとは違うのですか? カラーインデクスとglColorPointer()は別物なのですか?
>>NvTriStripを使え。 >非nV環境なので無理かなと。 NvTriStripはソース公開されたライブラリで、どんな環境でも使える。 しいて言えばNVに最適化されているという程度。 だが、DirectXより遅いというのはこれが理由ではないはず。 DirectXでもStrip使えばさらに速くなるだろうし。
619 :
611 :2006/08/06(日) 00:32:33
>>618 >NvTriStripはソース公開されたライブラリで、どんな環境でも使える。
面白そうですね。調べて見ます。thx!
>だが、DirectXより遅いというのはこれが理由ではないはず。
もしかしたらH/W アクセラレーションが弱いのかも知れません。
S3だし…。
ちなみにglGetString(GL_VERSION)で "1.2"が返ってきて、
当然ながらglGetString(GL_EXTENSIONS)にも無いので
VBOは無理っす。
CVAはどうした?
621 :
611 :2006/08/06(日) 01:06:05
CVAはコンパイル済み頂点配列のこと? ググっても有用な情報がみつけられなかったです。 NvTriStripはライブラリだけでサンプルは無いんですね。難。
nvidiaにはsgiのopengl技術者がモッサリ流れ込んでるからなあ displaylist最適化はキチガイレベルだよ atiには真似できない nvidiaに限定できるなら、下手に最適化するより おとなしくdisplaylist化してしまうのも手
623 :
611 :2006/08/06(日) 22:53:50
CVAはOpenGL 1.3ですね。 EXT_compiled_vertex_array
うちのプロ野蛮人はGL_VERSIONで1.1と出るがCVA使えるぞ。
OpenGL ESだとdisplaylist削られてるからな。 移植性を重視したい場合はお勧めできないかも。
頂点配列のデータ配列を変えてみたけどfpsは変化しない…
glNormalPointer( GL_FLOAT,sizeof(stVertex[0]) , &stVertex[0].nx );
glVertexPointer( 3,GL_FLOAT,sizeof(stVertex[0]),&stVertex[0].x );
と
glNormalPointer( GL_FLOAT,0,Normal );
glVertexPointer( 3,GL_FLOAT,0,Vertex );
前者は某サイトでキャッシュ効率云々と書いていたパターン。
でもGPUにはCPUのようなデータキャッシュの概念はなかったような気が…。
>>625 まぢ?
最終的にSH4なES環境で使いたかったのに。
CVAってどんな機能なのよ
glVertexPointerの参照先のLockとUnlockじゃなかったっけ? これやらないとglDrawElementsとか呼ぶたびにシステムメモリを読みにいくとか。
キャッシュ云々は別々に持たないでglInterleavedArraysを使えって意味じゃないのかなと適当なことを言ってみる
S3からXGIに乗り換えた。あんまり速くない。 とりあえずVBOの有無で測定したら有で1.5倍速くなったけどまだ遅い。 CVAを使うと速くなる?
CVAってどんな機能なのよ
CVAってどんな機能なのよ
黙って3DLabs WildcatV 6110買っとけ。
SGI時代のものを引っ張り出してきたか・・・懐かしいねぇ。 SGIのOpenGLSDKにもついてきたっけ。
オレの環境だとCVAで30%アップ、VBOは0%だった。 CVAを使うと描画が安定しなかったよ。
639 :
デフォルトの名無しさん :2006/08/15(火) 11:57:05
OpenGLてどこでDLするのでしょうか。 調べたのですが中々なくて・・・。
OpenGLってDLするもんだったのか
641 :
デフォルトの名無しさん :2006/08/15(火) 12:50:49
>>640 無償で提供されていると、調べたら出てきたので・・・。
OSに含まれてるってことだよ
643 :
デフォルトの名無しさん :2006/08/15(火) 12:58:53
これが平成生まれのゆとり世代
昭和生まれのゆとり世代である俺は勝ち組か
ああそういえばWin95(OSR2以前)用のOpenGLはダウンロード提供してたな
DirectXはいつでもDLできるのに
あんなアホみたいに頻繁にバージョンアップしませんから
648 :
デフォルトの名無しさん :2006/08/17(木) 23:37:52
質問です。
いま、行列で大変困っています。
GLの行列(floatの16配列)において
単位行列だと
http://ranobe.com/up/src/up130820.jpg のように表示されるのですが(三角のとがっている方向がZ軸)
それを
0.000000 , 0.000000 , -1.000000 , 0.000000 ,
1.000000 , 0.000000 , 0.000000 , 0.000000 ,
0.000000 , -1.000000 , 0.000000 , 0.000000 ,
0.000000 , 0.000000 , 0.000000 , 1.000000
の行列にし表示すると
http://ranobe.com/up/src/up130821.jpg のように表示されてしまい、原因が分からずに困っています。
カメラは
glLoadIdentity();
のすぐ後に
gluLookAt(
30 , 30 , 30,
0 , 0 , 0,
0 , 1 , 0
);
としています。
行列の内容が間違っているのかとも思い。
glMultMatrixfを呼び出す前に
2つ目の行列を直にいれています。
ですが、結果はこのようになってしまいます。
どうしてこのような現象になってしまうのか分からずに困っています。
どなたかお知恵をお貸しください。
>>648 状況がよく分からないけど、
OpenGLの行列を表す16要素浮動小数点配列は、
a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44
という行列だとすると、
{a11, a21, a31, a41, a12, a22, a32, a42, a13....}
という順番が前提だよ。
{a11, a12, a13, a14, a21, a22, a23, a24, a31....}
と勘違いしてないかな?
>>649 さん
レスありがとうございます。
行列の配列ないの
0,4,8要素がX軸
1,5,9要素がY軸
2,6,10要素がZ軸
3,7,11要素が座標という考え方で
ということですよね。
確かDirectXの行列の転置だと習ったのですが。
そしてベクトルの書ける方向が逆なので、結局メモリ配置はいっしょなわけだが。
652 :
デフォルトの名無しさん :2006/08/18(金) 13:02:53
高校からやりなおせ
653 :
デフォルトの名無しさん :2006/08/19(土) 00:17:57
目つきやべぇ
俺にそっくりなんだが・・
>651さん 調べてみましたが本気で分からないので教えていただけないでしょうか。 お願いします。
glGetFloatv(GL_MODELVIEW_MATRIX,... で、どうするとどうなるか確認してみればー
>>648 を読んでも何が問題なのかわからんのだが…
>ですが、結果はこのようになってしまいます。
>どうしてこのような現象になってしまうのか分からずに困っています。
OpenGLが仕様通りに動けばそうなるだろ。
いったいどうなって欲しいわけ?
659 :
651 :2006/08/25(金) 02:28:38
OpenGLのプログラミングガイドブックを見ると以下のようになっている。 (思い出して書いてるだけなので間違いかもしれないがw) 座標値のベクトルxモデルビューxプロジェクション で、行列のメモリ配置は列主順(左端の要素が先頭になる) DirectXのヘルプでは プロジェクションxビューxワールドx座標値のベクトル で、行列のメモリ配置は行主順(上の要素が先頭になる) 表記的に転置されて、メモリ配置的に転置されているので、元々いっしょ。 それ以外にクリッピング座標系のとり方や、カメラの向きの座標。 DirectXでは左手系と右手系の両方がサポートされているなど差は大きい。 ついでに、OpenGLで間違えそうなポイントとしては、 設定する行列を指定した後に行列演算の関数を呼ばなければならない。 モデルビューを指定し、初期化して、カメラ行列を設定しなおしてから、 ワールド行列を指定する作業が毎回必要。 行列スタックも要調査。 657さんの言うように値を取得してデバッグで。
660 :
デフォルトの名無しさん :2006/08/25(金) 02:29:49
CloseGLはどこですか?
ここです
glTranslateっていうのは、 1 0 0 x 0 1 0 y 0 0 1 z 0 0 0 1 ですか? それとも、 1 0 0 0 0 1 0 0 0 0 1 0 x y z 1 ですか? 本など見るとある本には前者、ある本には後者となっています。 glGetでみると、後者になっているのですが、後者が正しいのでしょうか? これって計算の仕方が違うだけで同じなんでしたっけ?
前者。glGetで後者に見えるのは、メモリ配列が 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 と列優先のため、 1 0 0 0 0 1 0 0 0 0 1 0 x y z 1 になっている と理解すると、幸せになれる
行列によるベクトルの変換を (行列)×(縦ベクトル)と書くか、(横ベクトル)×(行列)と書くかの違い。 どっちも正しい。 OpenGLでのメモリ上の配置はmatrix[16]={1,0,0,0,0,1,0,0,0,0,1,0,x,y,z,1}; これを4つずつに区切って縦に並べるか横に並べるかは好きにしろ。
665 :
デフォルトの名無しさん :2006/08/26(土) 00:58:04
何やってんだよしはる
666 :
662 :2006/08/26(土) 01:04:26
>>663-664 レスありがとうございますm(_ _)m
ややこしい、配置になってるんですね・・・
頑張ってみます!
667 :
デフォルトの名無しさん :2006/08/26(土) 11:58:20
一台のPC上で二つのOpenGLアプリを動かして、双方向に通信したい のですが(socketなどで)、可能でしょうか? GLUTのループを使っているので、通信部分をどこで行えば 良いのかよく分かりません。
通信したい時に通信しろ。
あー俺も似たような疑問がある ループに入ったまま通信部分を呼び出したりできるの?
Thread使うかシグナルベースでXのイベント投げるか。
671 :
デフォルトの名無しさん :2006/08/26(土) 14:32:32
idle関数使えばいいんでないかい?
672 :
デフォルトの名無しさん :2006/08/26(土) 16:52:44
frame bufferに描画→glCopyTexSubImage2D→コピーしたテクスチャを使ってframe bufferに描画 という処理をFBOを使うように変更しているのですが、上手く行きません。 FBOで描画したテクスチャとコピーしたテクスチャが同じになっているのは確認できたのですが、 最後のテクスチャを使った描画の結果が同じになりません。 if(FBO_OK){ //fbo }else{ //CopyTexSubImage } //draw with tex aaa... という感じで、描画部分は同じなのですが、結果は同じになりません。 こういった場合で、よく間違えている処理を御存じの方いませんでしょうか。
673 :
デフォルトの名無しさん :2006/08/26(土) 20:38:09
>671 >idle関数使え おお、なるほど。 やってみます。
OpenGLでどんな処理してるか知らんけど負荷が高くなっても idle関数は呼ばれるのか…? 670のスレッドに1票。
通信内容によって、idleやtimerFuncが良い場合もあるし、表示時やマウスイベント時が良い場合もあるかも。
もちろんスレッドが良い場合もある。
>>668 に一票
>>672 描く対象のFBOにアタッチしているテクスチャーは
描画には使えないけどその辺大丈夫?
677 :
デフォルトの名無しさん :2006/08/27(日) 04:08:23
>673 サーバー側のプログラムで idle関数にrecv()を入れて、TCPパケットを受信しようとしたけれど、 そのタイミングでクライアント側プログラムからパケット来ない場合に ConnectionがCloseして失敗しました。私のコーディングが悪いのかな?
大丈夫。コーディングじゃなくて頭が悪い。
679 :
デフォルトの名無しさん :2006/08/27(日) 11:43:43
>>676 描画したテクスチャのMIPMAPが作られていなかったのが原因でした。
GL_GENERATE_MIPMAPを指定しておいても、FBOによる描画ではMIPMAPが更新されないみたいです。
glGenerateMipmapEXT()を入れたら上手く行きました。
が、この関数とても遅い。。GL_GENERATE_MIPMAPによる自動更新と比べて何十倍というレンジで遅いです。
今は自動更新するために1pixelだけ関係ないところに転送しているんですが、
もっとスマートな方法ってないでしょうか?
>>679 Renderbufferに描いてCopyTexImageで
テクスチャにコピーしちゃった方が速いかもね
681 :
デフォルトの名無しさん :2006/08/28(月) 15:37:56
>677 idle()関数の方法は、挫折しました。 Threadの方法は、やったことが無いので、 共有メモリでトライすることにしました。
やっぱり頭が悪い。
683 :
デフォルトの名無しさん :2006/08/28(月) 20:08:22
681> 共有メモリでできました。 双方向にいつでも読み書きできるので、いい感じです。
まあ1台のPC上でって制限が付いてんならそれでいいけど socketで通信するならGLUTはやめてSDLでも使った方がいいな
モデルビュー行列や射影行列の影響を受けずに glBitmap()の座標を指定する方法はないですか? glRasterPosは影響を受けるので座標指定は使いづらいです。
いやなら全部glPushMatrix汁
687 :
デフォルトの名無しさん :2006/09/01(金) 07:22:20
>>685 ARB_window_posがサポートされていれば、glWindowPos*() を使え。
thx! glWindowPos2iARBでできました。
自分の環境では glWindowPos2iARB(0,0) が左上の指定になるんだけど みなさんもそうですか? 別の環境ではglRasterPosと同じように左下が(0,0)だったような?
nVIDIAだとglWindowPos2i(0,0)は左下になる。
arb_window_posって使ったことないんだけど、 D3Dのあの奇妙な半ピクセルずらしラスタライズのエミュレーションとかできるの?
MESA + freeglut だと左下
693 :
デフォルトの名無しさん :2006/09/03(日) 12:39:37
ARB_window_posはまさに 685 の要求を実装したものだから、左下が原点じゃ なけりゃ、コードにバグが有るかOpenGL実装にバグがあるかのどちらか。
質問です。
環境はGLUT+OpenGLです。
ワールド座標系からデバイス座標系への変換についてなんですけど、
glutMouseFuncで所得する座標、所謂マウス座標と、
ワールド座標系での座標を一致させるための変換は、
glOrtho(-0.5, w-0.5, h-0.5, -0.5, -1.0, 1.0)
だということが↓のサイトに書いてありました(w, hは、それぞれ、デバイス座標系の幅と高さ)。
GLUTによる「手抜き」OpenGL入門(
ttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html )
ここで、0.5という値で、半ピクセル分ずらして射影しているようなんですが、
これにはどういった意味があるのですか?
695 :
デフォルトの名無しさん :2006/09/25(月) 01:09:58
りえ子、結婚してくれ 頼む
696 :
りえ子 :2006/09/25(月) 03:47:24
嫌
Fin
Syn
699 :
デフォルトの名無しさん :2006/09/29(金) 04:16:29
頂点配列(glVertexPointer)に関する質問です C++ & GLUTです typedef struct { double x, y, z; } POINT; typedef struct { POINT p[3]; POINT normal[3]; } TRIANGLE; // 三角形の頂点データ 上のような構造体を定義し、 三角ポリゴンの頂点データを↓のようにvectorを使って格納しています。 std::vector<TRIANGLE> triangleArray; ここで、glVertexPointerを使う場合、 glVertexPointer(9, GL_DOUBLE, sizeof(TRIANGLE), &triangleArray[0].p[0]); glDrawArrays(GL_TRIANGLES, 0, (int)triangleArray.size()); と、このように指定したいと思っていたんですが、 第一引数には2〜4までしか指定できません。 試しに、 glVertexPointer(3, GL_DOUBLE, sizeof(TRIANGLE), &triangleArray[0].p[0]); として描画してみても、ポリゴンの頂点がめちゃくちゃになってしまいました。 vectorデータのglVertexPointerへの渡し方が間違っているんだと思いますが、 どのように指定すればいいんでしょう?
sizeof(TRIANGLE)だと法線の分も入ってしまう
702 :
デフォルトの名無しさん :2006/09/29(金) 10:34:31
>>700 そのリンク先も見たことありますが、この問題の直接の解決法は見当たらなかったです
>>701 第3引数には、次の頂点データの先頭までどれぐらいのバイト離れているかを
指定すると赤本にはあるのですが、違うのでしょうか?
たとえば、下のような色と頂点座標が混在した配列の場合、
static float hoge =
{ 1.0, 0.2, 1.0, 100.0, 100.0, 0.0,
1.0, 0.2, 0.2, 0.0, 200.0, 0.0,
1.0, 0.2, 0.1, 100.0, 300.0, 0.0}
glColorPointer(3, GL_FLOAT, 6*sizeof(GLfloat), &hoge[0]);
glVertexPointer(3, GL_FLOAT, 6*sizeof(GLfloat), &hoge[3]);
このように書いてあるわけです。
この書式でいくと、sizeof(TRIANGLE)でいいのかなと思ったわけなんですが...
sizeof(XYZ)*3にして試してみましたが、ぐちゃ度がより一層ひどくなりました
メモリーの配置がどうなるかもわからん奴は凝ったことをするな。
704 :
デフォルトの名無しさん :2006/09/29(金) 13:48:23
>>703 メモリ配置でスね?
どうなってるのか分かりたいので調べてみマス
>>702 に書いてあるのは(POINTをp 法線をnとすると)
{ p[0], n[0], p[1], n[1], p[2], n[2].....
って頂点ごとの情報のバイトオフセットが指定できるという話
>>699 は
{ p[0], p[1], p[2], n[0], n[1], n[2], p[3]....
706 :
デフォルトの名無しさん :2006/09/29(金) 21:00:43
>>705 それは承知しています
ですが、
>>699 の、第一引数を3にした場合、
{ p[0],p[1],p[2], n[0],n[1],n[2], p[3], p[4], p[5], n[3]...
このデータの内、p[0], p[3], p[6] ... が有効になるんじゃないか
と思ったんですが、うまくいかなかったんでスよ。
というのも、もしp[0], p[3], p[6]...ができるなら、
p[1],p[4],p[7]...のセット、p[2], p[5], p[8]...のセット
というようにpointerをずらしながら
glVertexPointer()→glDrawArrays()を3回繰り返せばいいのかな
とか思ったわけなんですが...
ちなみに、メモリ配置は、
triangleArray[0].p[0] : 0x09C40068
triangleArray[0].p[1] : 0x09C40080
triangleArray[0].p[2] : 0x09C40098
triangleArray[0].n[0] : 0x09C400B0
triangleArray[0].n[1] : 0x09C400C8
triangleArray[0].n[2] : 0x09C400E0
triangleArray[1].p[0] : 0x09C400F8
となっており、各要素p,nともにsizeof(double)*3=24ずつ飛んでいました。
triangleArray[0]から、triangle[1]までは144バイト飛んでいて、
これはsizeof(TRIANGLE) = 144 と合致していました。
座標はxyzって3次元だから第一引数は3なんだべ?xyzwなら4だし、xyなら2だ。 オフセットは第3引数。第3引数を24x6の144にすればp1,p3...になるんじゃね。 でもさ普通に頂点ごとに座標と法線(とuv?)を持たせたほうがよいじゃん typedef struct {POINT v, POINT n} vertex; glDrawArray()とかglInterleavedArrays()とか使うのにも都合がいいしね。 そこらへんの構造は人それぞれだったり、個別の事情があったりするとは思うけど。
>>707 それが第3引数に144を指定してもポリゴンがぐちゃぐちゃに表示されてしまった、
というのが問題だったんです
>でもさ普通に頂点ごとに座標と法線(とuv?)を持たせたほうがよいじゃん
確かにそうですね...
座標と法線を3角形ポリゴン毎にまとめてるのが問題なんですね
頂点ごとに座標と法線データを持つように変えてみました。
typedef struct {
POINT p;
POINT norm;
} VERTEX;
typedef struct {
VERTEX v[3];
} TRIANGLE;
というように構造を変えて、
glVertexPointer(3, GL_DOUBLE, sizeof(VERTEX), &triArray[0].v[0].p);
glNormalPointer(GL_DOUBLE, sizeof(VERTEX), &triArray[0].v[0].norm);
glDrawArrays(GL_TRIANGLES, 0, (int)triArray.size()*3);
としたところ、望みどおりの表示が得られました。
ありがとうございました!
これからは頂点配列を使うときはデータの持ち方に気をつけます。。。
Direct3D や ARB_*_program から GLSL に乗り換えようと思って勉強しています。 GLSL のサンプラー変数は glUniform*() でテクスチャユニット番号をいつでも 変更できるようになっていますが,この仕様は速度的に不利になりませんか?
このスレにそうのような質問に答えられる者はおりませぬ。 申し訳ござらんが自分を試して結果を報告してくだされ。
>>709 そんな細かいことを気にするくらいならドライバの最適化に任せた方がいい
テクスチャを引いてくる時間に比べりゃささいなもんだと思うがな。
OpenGL 2.0はDirectX 8.1に対応したラデ、ゲフォで使えますか? やっぱりDirectX9に対応していないと OpenGL 2.0 は使えないのでしょうか?
>>712 なんとも言えない。シェーダーに関してはピクセルシェーダー関係で制限があるかもね
OpenGL Extensions Viewerでしらべてみ。
>>714 仕様上は3Dテクスチャへのレンダリングも許されているが、
少なくともnvidiaのドライバではサポートされていない。
あきらめて2Dスライスを使え。
>>712 GLSLコンパイラがドライバに入ってれば2.0、入ってなければ1.5。
geforce2あたりは1.5でGLSLサポートしてたはず ドライバ実装は当然ソフトウェアで
さすがにGeForce2でGLSLは無理だろ…シェーダー無いんだから。 GeForce3ならわかるがな。
そうだそうだ。
>>720 禿同。バレバレの自演は見苦しい。
あとそのテンプレは残すべきだよな。
>>722 別に面白さを狙って書いているのじゃないのだが?
725 :
デフォルトの名無しさん :2006/10/10(火) 01:31:55
りえこ、俺と一緒にならないか?
だが断る
そういうなよ、りえ子
断る
OpenGLの座標変換で質問なんですが、 射影変換後の座標で-0.4みたいなマイナスのz値ってありえます?
>>729 何が聞きたいのかよくわからんがありえる
初歩的な質問なのですが、GLSL等のシェーダー言語を使うと描画速度ってあがるんですか?
あがることもあるしさがることもあるって回答じゃ駄目かなぁ
根本的な考え方が間違っていてシェーダーは速度向上が目的じゃなくて 画質(リアリズム)向上が目的。
別に向上するとも限らんよ
本当に何もしないシェーダーを実行させれば、固定シェーディングより早いかもしれない。 しかし古いGPUだとシェーダーの最適化が進んでおらず、空シェーダーより固定シェーディングのままの方が 速いかもしれない。一概には言えないと思うよ。
736 :
デフォルトの名無しさん :2006/10/13(金) 22:27:06
InverseMatrixを実装したいのだが 参考になるサイトは無いかね? 出来ればDirectXのソースを見たいものだが・・・
OpenGLをオブジェクト指向で書き直したもんってどっかにない? オブジェクトの記述を手続きで書くのって苦痛だわ
vtkとか
>>738 みんな自分でラッパを書いていると思う。
俺はFBOを管理するクラスとか書いて使ってる。
D&Dされたファイルを取得できる関数ってありますか?
って、OpenGLには無いか。 APIか。スレ汚しスマソ
OpenGLってnvidiaの最新のグラフィックボードを買わないと動かないんでしょうか?
ドライバを更新するだけでも効果がある場合がある
やまたまえ^^
ぬすたがすまた><
やまたのおろちんちん
>>748 >カーマック氏は「(ピクセルは損傷が激しすぎるために)
もう飛ぶことはできないだろう」と語っている。
吹いたw
NV哀れ
同名の別人かと思ったら、あのジョン・カーマック氏かよ。
751 :
デフォルトの名無しさん :2006/10/24(火) 14:26:11
GLSL/Cgのプログラムを弄っているんですが, 今までGeForce6/7系で動いていたプログラムを RadeonX1600PROに持ち込んだら動きません. どうやら cgGLGetLatestProfile(CG_GL_FRAGMENT); の返り値にCG_PROFILE_ARBFP1という素敵に古いプロファイルが返ってくるようで, 私のシェーダプログラムは動的な分岐があるためこのプロファイルでは動かせません. 現状,Radeon系はこのARBFP1/ARBVP1といった古いシェーダしかサポートしていないのでしょうか. それとも,何か特殊なドライバなどを入れることで対応可能になるのでしょうか. ご存知の方がおりましたらご教授ください. なお,ドライバはCatalyst6.9を使っています. WinXP64で動かしていますが, WinXP32と同じバージョンのドライバのようなのでそのへんは関係ないと思うんですが…….
>>751 ATI系だとCgじゃARBFP1/ARBVP1しかサポートしてないよ。
DirectX経由だともっと高いプロファイル使えるんだけど、OpenGLだと駄目。
多分、高度なプロファイルは内部でnVidiaの拡張命令を経由していると思われるのだが、
当然ATIがその拡張をサポートしていないのが原因かと。
結局、CgやるならGeforceって事になる。
GLSLの方なら、ATIでも最新の機能が使えるんじゃないの? 俺はそっちあまり詳しくないけど。
RenderMonkeyでGLSLが使えるからATIならこっちじゃね?
GLSLとFBOのマルチレンダーターゲットやってんだけど、 シェーダー内でピクセル毎に、このtextureには描かない、こっちのtextureには描くみたいな ことできないかな glDrawBuffers()だとピクセル毎にできないし、discardしたら両方描かれないし、 gl_FragData[0]だけ描いても[1]にまで黒が置かれるし、 困ってます
>>756 条件分岐でgl_FragData[0]だけ描くようにしても
gl_FragData[1]のバッファの方まで何らかの色が描画されてしまうということ?
バグでなくそれが仕様だとしたら不便だね。
レンダーターゲットのテクスチャバッファをSampler2Dとしてシェーダ内で参照して、
描きたくないバッファには対応するSampler2Dの対応する場所の色をフェッチしてそれを描くようにしたら?
あんまり美しくないが・・・。
>>757 なるほどそれはいいかも。思いつかなかった。
元の色拾ってきて上書きってことですね、やってみますわ
ありがとう。
>gl_FragData[1]のバッファの方まで何らかの色が描画されてしまう
そうなんですわ。
分岐で無視なりdiscardで抜けるなりすると、[0]と同じ色を[1]にも描くようです。
VISIOみたいなGUIを作りたいんですけど、 描画がGLで,簡単な図形を書いたり選択したりできる ライブラリってありませんかね?
swing
選択はできんけど、Cairo かな
>756 よく知らないんだけどマルチレンダーターゲットのときのアルファテストやブレンドってどうなるの? 描きたくないほうのアルファを0にするのじゃだめなの?
OpenGLのバージョン表記って意味なくね? 2.0とか言っても、DirectXと違ってAPI依存じゃないじゃん。 その気になれば1.5のまま2.0の機能を使うことだってできるわけだし
>>762 現世代のGPUではマルチレンダーターゲット時、各ターゲットのブレンディング設定を個別に設定できないよ。
今月中に出るとかいうnVidiaの次世代GPU以降(シェーダモデル4.0以降?)ではできるようになるっぽいが。
>>763 バージョン表記で2.0とあれば、少なくとも標準機能として2.0に取り込まれた拡張はサポートされている、
という事を確認できる。それ以外のメリットは・・・なんだろ。
>>699-708 で出たVectorを使って頂点配列使うやり方だけど、
Vectorの場合、要素の挿入とかできるわけじゃん。
そうするとVERTEX構造体が次のようにもっとデータを抱えている場合、
typedef struct {
POINT p;
POINT norm;
POINT texcoord;
double weight;
.....
} VERTEX;
Vector<TRIANGLE>の要素の挿入やらソートやらがめっさ重くなるよね。
じゃあ軽くなるようにと、Vector<TRIANGLE *>で管理しようとかいうと、
頂点配列としていっきに複数トライアングルを描画する事ができなくなるよね。
Vector<T>は(Tがbool型でない限り))メモリ連続が保証されているから、
TRIANGLEへのポインタの連続配列と見なせるわけだけど、実際のデータは各ポインタの指す色んなメモリ番地に存在するわけだから・・・。
Vectorを挿入やソートを軽いままに、頂点配列として一気に描画できる良い方法ってある?
ある物体を描画する時にはglMaterialを設定して、 別の物体の描画する時はglMaterialの設定を無効にしたいのですが可能ですか? glEnableとglDisableみたいなものがあれば・・・
glPushAttrib(GL_LIGHTING_BIT);
769 :
766 :2006/11/04(土) 19:54:11
>>766 今考えたけど、
実データ自体は
vector<TRIANGLE> triangleArray;
で連続にデータを用意しておいて、別にインデックスも
vector<GLubyte> indexArray;
とかで用意して、indexArrayの方に新しいデータを挿入するなり、ソートするなりすればいいのか。
GLubyteのvectorなら挿入やソートも速いだろうし。
そうして
glDrawElements(GL_TRIANGLES , indexArray.size() , GL_UNSIGNED_BYTE , (GLvoid *)&indexArray.at(0));
とすればよさげ。他にもっと良い方法ある?
770 :
767 :2006/11/04(土) 20:02:55
>>768 おぉ、出来ました。
でも、どういう関数なんだろうか。ググって来ます!
すみません。頂点配列でTEXCOORD0だけでなくTEXCOORD1以降も用意するには、どうすればいいんでしょうか。 glTexcoordPointerはTEXCOORD0だけですよね?
>>771 glClientActiveTexture(GL_TEXTURE1)でclient-sideのテクスチャユニットをアクティブにして、
glTexCoordPointerを呼ぶ。glEnableClientState(GL_TEXTURE_COORD_ARRAY)も忘れずに。
>>772 ありがとうございます。頂点配列はクライアント側のリソースだからglClientActiveTextureを使うんですね。
これがVBOの時だとどうなるんでしょうか。
>>773 どうもならないよ
VBOじゃない時とおなじ
>>775 面白そうだね。でもそれってOpenGL/DirectXをラップしてるっていうのとは違くない?
778 :
デフォルトの名無しさん :2006/12/01(金) 00:11:50
WindowsXP(64),GeForce7950GT,ForceWare93.71,VS2k5.NET Proで垂直同期が取れないのですが、どうすれば取れるでしょうか? 垂直同期が取れないことの確認については、 glutDisplayFunc(display)で定義(登録)したdisplay関数内においてstaticなカウンタを設け、適当な回数でexitするようにして確認しました。 例えば、カウントが60*30回に達したら終了するようにすることで、私の使用しているディスプレイの垂直同期が60Hzなので30秒で終了することに期待しましたが、5秒足らずで終わってしまいました。 続いて、ドライバの設定をいじってみました。 NVIDIA Control Panel-プレビューによるイメージ設定の調整 から 詳細3Dイメージ設定を使用する を選び、 3D設定の管理-垂直同期 を 強制オン に設定しました。 しかし実行結果は変わらず。 (これはDirectX向けの設定か?) 最後に、wglSwapIntervalEXT関数を使ってみようと思い、 nvidiaの開発者サイトからwglext.hを入手、main関数の冒頭で PFNWGLSWAPINTERVALEXTPROCwglSwapIntervalEXT; wglSwapIntervalEXT= (PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT"); とやったところ、NULLが返ってきたのでリタイアしました。 是非ともアドバイスをお願いします。
>>778 OpenGLが初期化されていない状態じゃアドレス取るのは無理だよ。
glut使ってるのならglutInitの後からおkなはず。
780 :
778 :2006/12/01(金) 02:01:28
>>779 勘違いしてました。
ご指摘ありがとうございます。
glutInitの後に回したら使えました。
その後、wglSwapIntervalEXT(1);によって見事に垂直同期が
とれない。
あれ?
ちょっと資料当たりなおしてきます……。
wglSwapIntervalEXT();でFPS計れるっけ? FPSは別な処理が必要な気がするけどな〜
垂直同期はとれるよ。 FPSは測るには、timeGetTimeとか使わないと。
nForce6100 内臓グラフィックだけど「3D設定の管理-垂直同期を強制オン」を やったらOpenGLでも垂直同期取れるけどな。 もちろんwglSwapIntervalEXT(1);でも同期は取れる。 カウンタの方がおかしいんじゃないの? 64ビットドライバのバグってことも無いだろうし。
784 :
デフォルトの名無しさん :2006/12/01(金) 23:45:25
むしろ水平同期ないの? 懐かしいじゃん。 あの横に流れる映像。 ある意味日本人の心のふるさとだよね。
VSYNC、HSYNC割り込みですかw なつかしすw
ある訳ない
すいません、OpenGLにはSDLのサーフェイスのような機能は無いのでしょうか? つまり、ポリゴン等を別々のサーフェイスに描画して、 最後にそのサーフェイスを1枚に合成して表示させたいのですが、 調べて見てもそのような機能・関数はありませんでした。 現状はSDL+OpenGLで製作しています。 ぜひともアドバイスお願いします。
788 :
787 :2006/12/03(日) 17:56:55
すいません、肝心な言語を忘れていました。 C(GCC)です。
ディスプレイリストの事なんですが、 glNewList()とglEndList()の中に計算式を書いた場合、呼び出す度に計算式は実行されるのでしょうか? それとも、計算結果が登録され計算式は毎回計算されないのでしょうか?
じゃあまず計算式の定義から(ry
あ、はい。 2次元の円を登録する場合なら、 glNewList(); glBegin(); for ( int loop1 = 0; loop1 <= 30; loop1++ ) { float x, y; x = 10.0f * sin( PI * loop1 / 30.0f ); y = 10.0f * cos( PI * loop1 / 30.0f ); glVertex2f( x, y); } glEnd(); glEndList() こんな感じで登録した場合、毎回sin,cosが実行されるのかって事です。
>>787 viewportを複数作って対応出来ないか?
ディスプレイリストはOpenGLのコマンドを保存するものです。
794 :
デフォルトの名無しさん :2006/12/03(日) 23:49:39
言い方が紛らわしい。 コマンドを保存するならフマンドリストとかにすればいいものを
続きを読むにはフマンドフマンドと書き込んでください
フマンドフマンド
>>792 なるほど!
ウインドウ外の場所にViwportをいくつか持っていて、それぞれに個別に描画して、
最終的にそれらをglReadPixels()で読み込んで、
glDrawPixels()でメインのビューポートに合成する、という事ですか?
今度試してみます。ありがとうございました。
>>797 ウィンドウ外にViewportは持てない…というか描画できないよ
合成というのがよくわからんが、
画面分割という意味ならViewportで分割して描く。
あとで重ね合わせたいという意味ならFramebufferObjectかPBufferを使おう。
というか、
描画→ReadPixels→Clear→描画→…→Clear→DrawPixels
でも良いような。
799 :
797 :2006/12/09(土) 00:39:13
>>798 回答ありがとうございます。遅れてすいません。
SDLのSurfaceと同じような事が出来れば良いなぁと思ってました。
それらの方法の組み合わせで実現できそうです。
FramebufferObjectやPBufferが調べたところ使える環境があまり多くないらしいのが
気がかりですが・・・。
>描画→ReadPixels→Clear→描画→…→Clear→DrawPixels
この処理をあんまり繰り返すと重いかなぁと思っていたので・・・。
>>799 最終的にテクスチャにするならReadPixelsよりCopyTexImage2Dの方が手っ取り早いけどね。
なんにせよウィンドウサイズより大きい領域は一度に描画できないし、オフスクリーンにならない。
PBufferは使える環境は多いと思うけど、
WindowsとMacとXで全然実装が違うからマルチプラットフォームを考えるとつらい。
あとマルチコンテキストになるんでそもそも扱いが面倒すぎる。
FramebufferObjectは比較的扱いが楽だが、最近のRadeonやGeForceでしか使えん。
最近のと言ってもRadeonで9500以降、GeForceでFX以降だが。
どれも一長一短なんで一番用途に合った方法を選んで上手くやってくれ。
801 :
799 :2006/12/18(月) 02:46:57
>>800 恐ろしく亀ですいません。
glCopyTexImage2Dなんて関数があったとは知りませんでした。
色々試してみます。解説ありがとうございました。
802 :
デフォルトの名無しさん :2006/12/18(月) 15:23:35
問題です。1℃の水に3100kcalの熱を加えると何℃になるでしょう。
騙されねーぞwwwww
1℃以上
質問です。 シェーダーを使わずに、ライティングした結果の色と頂点色を合成した色をポリゴンの最終的な色にする、 というのはOpenGLではできるのでしょうか?
>>805 合成するってのが具体的じゃなくてなんとも答えにくいが、
アルファ指定しつつ2回描写してブレンディングする位しか思いつかんね。
>>805 質問の意味がいまいちわからんけど、3頂点ポリゴンだとしたら必ず最初の頂点の色でフラットに塗るってこと?
ライトが平行光だけだったら全部の頂点の法線をそろえれば良いような。
点光源やスポットライトがある場合は自分でポリゴンごとに計算するか、ポリゴンごとに平行光に変換か?
他にも方法あるかな。つかシェーダーを制限するってのも、もはやどうかと思うけど。
>>805 できるよ。glEnable(GL_COLOR_MATERIAL)を忘れずに
みなさんありがとうございます。
>>805 調べたところ、その指定をするとglColorMaterialの代わりにglColorの指定がシェーディングに
使われるとありますね。
例えば、頂点カラーの色を半分、glMaterialによるシェーディングの結果の色を半分、混ぜ合わせた色を
出したいのですが、
>>807 さんのようなやり方しか他にないでしょうか。
>glColorMaterialの代わりにglColorの指定が ? いっそ頂点ごとにマテリアルを設定すればよいのでは
812 :
デフォルトの名無しさん :2006/12/24(日) 16:25:52
こんにちは 最近OPENGLを使い始めたのですが、半球の描き方が分かりません 球はglutSolidSphereで描画できたので glutSolidHemiSphereかとも思ったのですがどうも違うようで… どなたかご存じの方、教えては頂けませんでしょうか
自分で描いてください。
>>814 関数は無いということですね。ありがとう
815 :
デフォルトの名無しさん :2006/12/24(日) 18:12:36
>>806 これは数式を単に「見える化」するだけでは?
演算は全部コンピュータがやってくれるわけだから
必要な知識と労力は主にUI周りだね。
ソフトウェアとしてはごく初歩的な部類に入る。
日本語赤本2が売ったので10分ほど読んでみた 感想 これからGLSLやりたい人には入門書としておすすめ
それそれ あと1.2以降で標準に追加された拡張についても書かれてるから その辺知りたい人にもいいかも (VBO、マルチテクスチャ、3Dテクスチャ、圧縮テクスチャ、シャドゥマップ、etc.. ただFBOやS3TC、シェーダアセンブラなどの(個人的に)実用的な拡張には一切触れてないみたいなのが残念 (まあ当然といえば当然か
わらわも買ったぞえおにゅうもんにはいいとおもうぞえ
>>818 そういえばFBOはOpenGL2.0には入ってないんだったね。普段使ってるとついつい当たり前の機能だと思ってしまうが。
VC2005でglpng使いたいんだけど
同梱のサンプルがコンパイル通らない、、、
http://www.wyatt100.freeserve.co.uk/ ビルドすると
LINK : fatal error LNK1104: ファイル 'LIBCD.lib' を開くことができません。
ってくるんでLIBCD.lib無視にしてもうまくいかず・・・
どなたかご教授お願いします。
>>821 glpng.lib/glpngd.libがシングルスレッド用にコンパイルされてるからVC++2005では使えない。
ソースからglpng.lib/glpngd.libを作り直せ。
>>822 うー、、、そうだったのか・・・それでpngdでひっかかってたのか・・
ありがとうございます。
>>819 俺も買った。
前の赤本は古すぎて買う気がしなかったが、これは新しくてよい。
>>824 そうだぞえ
前の奴もうかっちまうかと本屋行く度におもうとったが
ようやく新しいので狂喜乱舞でかったぞえ
まっててよかったぞあ
大学の図書でなげてあるので救われてる。 でも手元においておきたいな。
827 :
デフォルトの名無しさん :2007/01/18(木) 13:52:41
ゲーム作るなら結局DX使わないといけないから最初からD3D使っとけって話
GLスレでそんなこと言うなよ。 DXなんか使わなくても構わないんだぜ?
MSゲーム機とPC以外なら無問題
まぁ、それぞれのAPIにはそれぞれ得意分野がありますから・・・ OpenGL… PS3、Linux、Windows、SGI系ワークステーション DirectX… Windows XNA… Xbox360、Windows Power
>>828 結局、音だすときとか、入力にDirectX使ってる俺がきましたよ・・・。
こんな斜陽の技術に今さら投資するのも気が引けるな
Glut + fmodでやってる。 しかし、入力はDirectInputを使わざるを得ないよなぁ。 誰かサードパーティーで、COMみたいに初期化地獄にならず、DLL地獄にもならない手軽なの作らんかね。
834 :
デフォルトの名無しさん :2007/01/19(金) 14:11:58
モデルはどうやって読み込んでますか? LW3D+ディストーム配布のソースファイル使ってます。
835 :
デフォルトの名無しさん :2007/01/19(金) 16:24:40
836 :
デフォルトの名無しさん :2007/01/19(金) 17:28:29
ゲーム作る場合、SDLとGLFWとDX併用のそれぞれのメリットとデメリットをまとめてくれまいか
DLL地獄ってSDLのこと言ってるのか?
838 :
デフォルトの名無しさん :2007/01/23(火) 04:36:59
【ネガティブ派遣根性チェック】 3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。 □派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする □派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われている □自社に仕事を持ち帰れるように言われるとムカつく □自社で仕事なんてできるわけがない □派遣労働の問題点の話題が出ると感情剥き出しにする □派遣労働の問題を指摘する人は嫌いだ □派遣先には仕事だけでなく自分のプライベートについても指示して欲しい □自分の月額金額を知らない □派遣先社員より自分の生涯収入が低いのは当然だ □派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ
839 :
デフォルトの名無しさん :2007/01/31(水) 18:29:38
Vistaでまったく動かねえ・・・ どうするべ
>>839 ドライバーが変わっちゃったんだよね、ATIのは昨夜くらいになんか出てた気がする。
>>840 今nVidiaのbetaドライバ入れたらGLSLも動いたわ
でもフレームレートは落ちた・・
doom3とかがvistaでシャレにならんほど遅くなってるらしいからnvidiaもatiも必死で高速ドライバを書いてくれる はず
マジっすか(´д`;)、クソMSめ〜
845 :
デフォルトの名無しさん :2007/01/31(水) 23:49:40
そういや、みなさん、
OpenGLの最新ニュースなんかは、どこで仕入れているんですか?
海外のニュースサイト?
>>844 うわ。RADEONがガタガタだなー。
これはVistaの問題じゃなくてドライバの質の問題。 今回からドライバモデルが変わったから、みんな一応フルスクラッチで書いてるはず(強引にソース引用してパフォーマンス落としてる気もするがw) だから、熟すまで待ちな
ドライバに付いてはwdk wdf kmdf探せば良いと思うよ
848 :
デフォルトの名無しさん :2007/02/02(金) 23:45:47
またドライバモデル変更かw これが、MSクオリティか・・・ WinNTのときもだよなー。 古いデバイスとか、また動かなくなるのか orz
すぐに移行できなくて正直困る。 仕事の方は複数台つかってテストするから手間が増えるし もうね、ぬるぽ
客にvistaを使わせなきゃいいだけだろ
WinAPIで3Dって無理?
どんな方法でもドットがかけりゃあ3Dは出来るぞ。 rayを計算して、輝度やRGB値を弄るんだ
工房の時バーチャ1にあこがれて学校のPC98とN88BASICで3Dやったの思い出した
>>850 世間知らずかアカデミックな世界の人なんだな。
ある意味うらやましいよ。(マジでうらやましいorz)
855 :
デフォルトの名無しさん :2007/02/04(日) 00:35:08
>850 消えろ
>>853 3Dの立体地形図N88BASICで作った
隠面の計算までドット一個ずつやってたな
データはカセットテープから読み込み
そんな俺は・・・・もう爺ですかそうですか
MSは嫌いだDirectX以外いらないように排除してくるから
頂点配列の使い方で質問なのですが、 あるオブジェクトを単色で描画したいとすると、必ずオブジェクトの頂点分の カラーデータ配列が必要になるんでしょうか?
ならない
>>860 ほんとですか!?
シェーダーを使わずにそうしたいんですが、具体的な方法を教えてください。
頂点色を配列にしないで glColorで一回だけ指定して描画
glMaterialでもおk というか、glEnableClientStateで指定しなかったものは、 直前に指定したものがそのまま反映される。
それが、OpenGLの良い所でもあり悪い所でもある
865 :
デフォルトの名無しさん :2007/02/22(木) 19:13:03
青紫にぼわーっと光らせるのってどうやってんの?
866 :
デフォルトの名無しさん :2007/02/22(木) 19:29:39
ググレカス
ぼわー ↓ ぶぉわー ↓ ぐぉるぁー ↓ ぐるぉー ↓ Glow
868 :
デフォルトの名無しさん :2007/02/22(木) 20:07:16
検索しても出ないです
869 :
デフォルトの名無しさん :2007/02/22(木) 20:09:42
グローシェーディングばかり出てきます
紫の燐光とフルートの音色とこの世のもので無い角度って単語がでてきますた。
871 :
デフォルトの名無しさん :2007/02/24(土) 14:04:42
クロスプラァッツフォーウンム(英語は発音大事) ↓ 苦労するプラットフォーム つまり、どれでも動くと言うのは苦労することであると!! 名言だな、これは。
∧_∧ < `ш´> _φ___⊂)_ /旦/三/ /| | ̄ ̄ ̄ ̄ ̄| | | 誰彼百円 |/
873 :
デフォルトの名無しさん :2007/03/02(金) 01:31:22
ねぇねぇ mesaのglがあまりにヘタレだからちょっとコミットしてみたくなったんだけど、 何か読んどくべき本ってある?
875 :
デフォルトの名無しさん :2007/03/11(日) 09:25:39
pixel format with necessary capabilities not found GLUT実行したらこうなるんだ 助けれ
新しいグラボ入れれ
そんな!グラボなんて大きすぎて無理だよぉ だって…小さいノートなんだもん(上目遣い) ボスケテ。。。。
878 :
デフォルトの名無しさん :2007/03/11(日) 17:44:39
>>877 古いノートPCだと、OpenGLはキツイとおも
とりあえず、スペック晒してみろ
開発環境ないのに作成って厳しすぎないか
BGRAとならんだピクセルデータからテクスチャは作れますか? ネットで調べるとGL_BGRAというフラグがあるらしいのですが定義されてないとでます。 分かる方御願いします。
GL_BGRA_EXT?
>>881 GL_BGRA_EXTは使えました。有り難うございます。
883 :
デフォルトの名無しさん :2007/03/13(火) 19:32:48
マウスで3Dの物体を 回転・拡大縮小・移動が出来るようにしたいんだけど 物体を回転・拡大縮小・移動させるよりも 視点を原点方向に固定して、回転・拡大縮小・移動させたいのですが どこかに参考になるサイトありませんか。教えてください。 本とか見ても、なんかキーボードで拡大とかさせてるし java3Dなら変なクラスで一発でやってるのに
>>883 相対的には、視点が物体に近づく=物体が視点に近づくだと思うんだけど。
個人的にはこういう事は深く考えたくない(考えなくてもよいレベルのコードが多い)
ので、どんな簡単なサンプルでも「カメラ」を導入してる。それも簡単なgluLookAt使って。
java3Dのソース見てみれば?
透視投影でカメラのような拡大をしたかったら視野角をいじってくださいな
>>884 仰るとおりglLookAtで回転・拡大縮小はマウスの視点を変えることで実装したいのです
物体が視点に近づく、だと物体に行列かけないといけませんよね。
眼→物体
拡大縮小は → 方向にmotionで増減のような…
今日GL入門とかの本で始めたため、いまいち勝手がわからんのです。
マウス操作の回転・拡大縮小とかはてっきり入門系の本にあるものとばかり踏んでいたのですが何で無いのか
887 :
884 :2007/03/13(火) 22:40:05
888 :
デフォルトの名無しさん :2007/03/14(水) 18:36:35
>>887 ありがとうございます。
gluLookAt()を使っていろいろと試しているのですが
回転でglRotateと付くものを使うと、それは変換行列がオブジェクトにかかるということでしょうか?
視点にglRotateを使って
ex ey ez(カメラの位置)を変えたりとかはできるのでしょうか?
なぜ視点(始点)にこだわっているかといいますと パーティクルのような、膨大な数の3次元データを扱うので 極力行列などをオブジェクトに使いたくないのです。。。
>>889 3D始めたばかりの人にありがちな勘違いだぬ。
glVertex*()やらなんやらで指定した頂点座標(ローカル座標)は、全て
ローカル座標 −[モデルビュー行列]→ 眼点座標 −[投影行列]→ クリップ座標 →・・・
とゆー変換を受ける。
glRotate*()とかの行列系の命令は、モデルビュー行列や投影行列を「変化させる」命令なのな。
「どの行列を変化させるか」は、glMairixMode()で決める。
具体的に「どう変化させるのか」は、まぁ赤青本でも読んで欲しいんだけども。
つまりglRotateで指定した行列がオブジェクトにかかるんじゃなくて、
オブジェクトかかる行列をglRotate他で制御する、とゆーイメージ。
だから、「極力行列などをオブジェクトに使いたくない」という考え方は無意味。
必ずモデルビュー行列による変換は通過するから。
(ついでに言うと、この変換はとんでもなく高速なので速度とかあんま気にする必要ナス)
そして、glRotateやglTranslateを何回実行しようと、何千何万回実行しようと、
ローカル座標 −[モデルビュー行列]→ 眼点座標 −[投影行列]→ クリップ座標 →・・・
という変換そのものの速度は変わらない。
何故なら、何千何万回のglRotateやglTranslateの組み合わせも、一個の行列で表現できるから。
モデルビュー行列はいつでも、一個の4x4行列。
なので膨大なパーティクルを使うにしても、安心していくらでもglRotate他を使って大丈夫。
ああ、ちょっと長くなり過ぎた。まぁとにかくちゃんとした絵を出すことがまず大事かな。
>>890 ああ…こんなに親切に解説していただいてありがとうございます
安心してglRotate使います!
赤本・青本と呼ばれるものが図書館にもないのですが、探して読みます
本当にありがとうございました…涙が出そうです
892 :
デフォルトの名無しさん :2007/03/16(金) 00:07:43
インターレスというか走査線みたいな描画ってOpenGLで可能ですか? DIBで自前描画やってたときは、簡単だったんですけど、 シェーダーとかつかうんだろうか・・・ 問題は、そのシェーダーとやらが、どの程度のマシンで動くかなんだけど・・・
893 :
デフォルトの名無しさん :2007/03/16(金) 07:47:55
893です。
1.描写する 2.glOrtho2D,glDisable(GL_DEPTH_TEST) 3.GL_LINESで線を引く 4.すわっぷばっふぁー
GL_LINEで線を引くのが正攻法だろうが、それだと激しく重くなるので やっぱりシェーダーを使った方がいい。
896 :
デフォルトの名無しさん :2007/03/16(金) 13:41:21
実用的な速度はやっぱりシェーダーですかね・・・ どうもです
897 :
デフォルトの名無しさん :2007/03/16(金) 19:57:18
glPolygonStippleで最後に上書きどか
ステンシルバッファは?
縞模様のアルファ付きテクスチャ張った四角形で上書き。
>>899 のやり方がいいんじゃない。
□
■
って感じで1×2のテクスチャ用意してやればいいだけだし、お手軽で速い。
901 :
デフォルトの名無しさん :2007/03/25(日) 04:54:23
ARB_fragment_programって何も明示しないと最低でも24bit浮動小数点精度を要求される これって標準で、D3DでいうところのPixelShader2.0ができるということでわ????? D3DだとPS2.0からはFixedPoint精度シェーダを使用できないが OpenGLだと明示すればhalfもFixedも使用できる点がゴイスー
902 :
デフォルトの名無しさん :2007/03/25(日) 15:22:15
Non-Power-Of-Two Textures これはどういう機能なのですか。 字だけで見ると、今までは256*256とか256*128、512*512というテクスチャサイズでなければならなかったのが 2111*121とか、そういうサイズも扱えるようになる、ということに見えますが
その通りですが何か?
いや、力のないテクスチャを二個セットにして扱えるというものです。 なにせ non powerなので!
/⌒ヽ / ^ ω^j、 _, ‐'´ \ / `ー、_ / ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ { 、 ノ、 | _,,ム,_ ノl 'い ヾ`ー〜'´ ̄__っ八 ノ \ヽ、 ー / ー 〉 \ \`ヽ-‐'´ ̄`冖ー-く || \ \ \
>>902 それを使いたいVRAMの少ない環境では対応しておらず
逆に対応している環境ではVRAM余りまくりで結局使いどころのない機能
2乗テクスチャ以外を使わないといけないというときってある?? よっぽどキチキチのとき以外にないのではないか
ユーザーがサイズを揃えてくれない時。
909 :
デフォルトの名無しさん :2007/03/27(火) 22:47:16
OpenGL使って2DのCADデータのビューアみたいなのを作ろうと考えています。 質問は、OpenGLで表示する場合に、任意の多角形データを、三角形に分割する必要が あると思いますが、市販のCADソフトなどでは、ファイルを読み込んで一瞬で表示 できますけれど、どうしたらあんなに高速に表示できるんでしょうか?
ディスプレイリスト、FBO、頂点配列、コンパイル済み頂点配列。
ちょうどいいから質問 GLU_TESS_COMBINEでセットするコールバックのサンプルで、↓みたいなサンプルコードをみたんだ。 void CALLBACK Tesselator::callback_glcombine( GLdouble vertex[3], GLdouble* neighbour[4], GLfloat weight[4], void** outData ) { GLdouble* temp = (GLdouble*)malloc(sizeof(GLdouble) * 3); temp[0] = vertex[0]; temp[1] = vertex[1]; temp[2] = vertex[2]; *outData = temp; } んで、ここでmallocで確保した配列でどこでfreeするのが良いのだろう? 今のところ、glTessEndのあとでfreeしてて、問題はおきてないんだけど、 今の場所以外に、どこか解放するのに最適なタイミングとかあるんかね?
913 :
912 :2007/04/03(火) 08:20:44
スマソ、自己解決した
914 :
デフォルトの名無しさん :2007/04/03(火) 10:22:46
最近Tao Frameworkっていうのが有るって教えてもらったんですが、 ググッても日本語ではほとんどヒットしないんだけれど、 まだあまり流行っていないんですか?便利なら使ってみたい。
すみません、初歩的な質問で 視点を gluLookAt(0, 0, 100, 0, 0, 0, .0, 1.0, 0.0); 座標群 (x y z)= (-10 -10 -10)〜(10 10 10) な感じのボクセルのボックスを表示したら 視点から距離90のところにボックスが表示されるのですよね。
そうだよ。
ありがとうございます。 それで、聞きたかったのはマウスのスクリーンをクリックしたときに得られるxyは 0〜90の間にあるスクリーン上の、x y座標なんでしょうか それとも、ワールド座標のxyなんでしょうか? すみません、、、なんかこんがらがってきちゃって
???
>>クリックしたときに得られるxyは
どうやって(何の関数で)得た値?
>>0 〜90の間にあるスクリーン上の
これも意味がわからない。
一度、一通り勉強した方がいいと思うお。
モデルビュー変換、射影変換、ビューポートあたりが
わかってないと思う。
>>914 Mono プロジェクトって初めて知ったよ(Tao Frameworkもその一部らしい)。
うまくいってんのかね?
それなりに
>>917 うん、あの、918さんの言うとおり、ちょっと質問の意味が分かりづらいね・・・
といっても最初のうちは、聞きたい事をどう表現して良いのかが分からないのだと思うけど。
コードの断片を置いてくれれば、少しは話が早いかも。
もし仮に、gluUnProject()の話をしてるのだとしたら、その結果として得られる座標は
ローカル座標(glVertex*()とかで指定する座標のことね)だよん。
(その逆変換のために、viewportとprojection行列とmodelview行列を指定するので)
まぁとりあえず今はあんまりションボリしないで、座標変換についてお勉強してくらさい。
そのうち視界が開けてきますよん。
すみませn、自分でもこんがらがっていて
座標変換についてわかりやすく書いてるサイトとかありましたらお願いします。
viewport projection modelviewのところが本当にさっぱりで
>>921 さんの仰っているイメージです。
スクリーン座標とワールド座標を相互に得たくて
922です 確認だけしたいんですが ワールド→スクリーンに変換するために ワールド座標の(x y z)に、projecton行列を掛けて、スクリーン座標にする、ということで glMatrixMode(GL_PROJECTION); glLoadIdentity(); をすると、これ以下で(x y z)を扱っていくと、スクリーンのxyzを扱うことになって glMatrixMode(GL_MODELVIEW); glLoadIdentity(); をすると、これ以下ではローカル座標の(x y z)を扱っていくということでしょうか? 頭の悪い自分に腹が立ってくる(ノ_・、)グスン
勉強しなおしてきます。ありがとうございます
922です。
ワールドとスクリーンの関係を確かめたくて書いたのですが
だいぶおかしいことになっていて。見ていただけますか。
-0.9〜0.9の範囲に四角形のポリゴン表示
左クリックすると、スクリーン上の座標と、ワールド座標を表示
z Z キーを押すと拡大・縮小(視点のZ座標が上下する)
ttp://read.kir.jp/file/read69449.txt ように組んだのですが
1 Zキーを押すと縮小ばかりされる
2 さらに縮小したところのポリゴンの四隅をクリックしても
ワールド座標が(0.9 0.9 スクリーンのz座標)を返さない
もう、なんというかダメダメすぎるので助けてください
がんばれ^^; こうやってソースをうpしてもらえると話早いねやっぱ。 まず1の件ですが、これ初心者が陥りがちなワナのひとつですなぁ。 gluLookAt()に限らず、「全ての行列コマンドに言えること」ですが、 これらの命令は「行列を設定する」命令では あ り ま せ ん 。 「生成した行列を現在の行列に『かける』」という働きをします。 つまり、件のソースの場合、gluLookAt()が生成した行列がdisplay関数のたびに モデルビュー行列にかけられているので期待した動きにならないと。 gluLookAt()の前にglLoadIdentity()を置いて、モデルビュー行列を初期化してしまえば直るはず。 2の件ですが、「スクリーン座標」てのは無いし、もしウィンドウ座標のことだとしたら glReadPixels()で拾ってきたzがもうウィンドウ座標のz座標そのものなので。w gluUnProject()の結果はローカル座標だし、glVertex2d(0.9, 0.9)とした場合の ローカル座標は (x, y, z, w) = (0.9, 0.9, 0, 1) なので、ozには0に近い値が 入ってるのではないかな。 えーとこんなところでどうでしょう。 ちょっと今からコンパイルして確かめてみます。
>>927 。・゚・(ノД`)・゚・。
ありがとうございます…もう、なんか涙が出てきます。こんなに悶々としてたのがスッキリ晴れて。。。。
ようやくわかりました。行列を「かける」なんて初めて知りました。
2の件ですが
視点を前後させたときに、クリックしたところのウィンドウ座標をワールド座標で欲しいのです。
はじめの状態ですと 視点ez=10から距離10離れた位置に一番手前の視野箱がありますよね
gluPerspective(30.0, (double)w / (double)h, 10.0, 1000.0);
これがez=100になったときに、視点ezから、距離10離れたところの、ワールド座標のxy座標が欲しくて…
すみません、また説明がわかりにくくて
なんでz値がいつも同じなのかと思ったら、デプスバッファが確保されてなかったーッ!w ええっと、今回は四角一枚だから陰面処理とか要らないけど、3Dの表示をやるなら デプスバッファの確保・操作はほぼ必須ですよん。 修正 ・glutInitDisplayMode(GLUT_RGBA); → glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH); ・glClear(GL_COLOR_BUFFER_BIT); → glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 追加 ・init()でもdisplay()でも、どっか適当なところに glEnable(GL_DEPTH_TEST); あと、Windowsでは動作しちゃったけど、他の全てのGLUTの関数を使う前に glutInit()するようにしておきましょう。 でわん。ノシ
>>928 えっと、うー、あー・・・ん・・・・・・ゴメンやっぱ意味分かんないや・・・。orz
たとえばez=20のときに、表示されてる四角の右上をクリックしたら
ox, oy, oz それぞれにどんな値が返ってくることを期待してるのん?
929の修正をした後なら、(0.9, 0.9, 0)に近い値が返ってくるはずなんですが。
あああぁ。・゚・(ノД`)・゚・。 ありがとうございます…本当にありがとうございました。 深さが考えられてなかったから、ずっと変な値だったんですね これの枠外をクリックしたときは、後ろの箱の面の座標が出てくるのですよね? 手前が欲しい場合は…
>>932 ああ、なるほど! やっと分かった・・・
えーと細かいことはまぁ勉強してもらうこととして結果だけ言っちゃうと、
nearクリップ面はウィンドウ座標のz=0に相当するので、
gluUnProject()にz=0を渡してやればおっけー。
(もし注意深くデバッガで追ってたなら、glReadPixels()で得られたzは、
「一番奥でz=1」から「一番手前でz=0」の間で変化することに気付くはず)
なのでglReadPixels()も要らなくなりますね〜。
多分これで大丈夫だと思うんだけど、結果だけ見て満足しないで、ちゃんと勉強はしてね。
原理が分かれば、応用もどんどん広がっていくはずだから。
あと、別に頭悪いとか自分を卑下することはないと思うのよ〜。大切なのは、成長していくことのはず。
最後に・・・
ttp://read.kir.jp/file/read69449.txt みたいにソースうpできるとこあると便利だなぁ〜どんなサイトなのかな〜
って思ってトップページに行ってみたら、
ちょっとアヤシゲなサイトで焦ったぢゃないか!!(゚Д゚) (今、会社!ww)
んじゃ、そろそろ帰ります。
ば〜いば〜い。ノシ
>>933 すみません、本当に助かりました。 ようやく、自分のやりたかったことがこれでできます。・゚・(ノ∀`)・゚・。 本当にずっと親切にありがとうございました。 しかもお仕事中なのに…すみませんでした、本当に。 うpろだも適当に見つけてきたのでした(;´Д`) 最後に、本当にありがとうございました。ちゃんと勉強して、いつか教えられる側になります
935 :
デフォルトの名無しさん :2007/04/13(金) 19:13:09
二次元の平面上で大量の頂点情報を入力するとき、パフォーマンスの低下を防ぐ方法はありませんでしょうか? というか頂点の数には、制限があるのでしょうか?どうかお教えください。(_ _)
俺用語を卒業しろ。まずはそれからだ。
>>935 言っている意味がよくわからないが、
頂点の数には制限はない、と、とりあえず答えておく。
GLTTを利用して日本語の描画をやりたいと思っています。
http://train.iwk.jp/home/shoria/gltt.html ゲームのメニュー画面で使うために日本語の描画が必要なのですが、GLTTを利用しようと思っています。
1バイト文字を表示は出来ましたが、HG正楷書体をフォントに指定しての日本語の描画ができません。
上のURLでは表示できているので、何かやり方があるんだと思いますが、どうすればいいんでしょうか。
なお、目的を達成できるならどんな手法でもいいです。
FTGLは試したんですが、コンパイルを成功させることがどうしても出来ませんでした。
どうかよろしくお願いします。
GLTTについてはわからないが 俺は、wglUseFontOutlines で日本語描画している(Windowsなので)。 あと、描画する文字があらかじめわかっているなら、いっそのこと画像で 用意しておくという手もある。
>>939 ありがとうございます
両方とも検討したんですが、wglは具体的なコーディングが分かりませんでした。しかも対象がwindowsと確定したわけではないので・・・
画像で用意するのは最終手段として検討していますが、直前まで内容をいじるので出来れば楽にソースをいじれるほうがいいと思っているんです。
知り合いにSDL_ttfの存在を聞いたので、やってみてきます。
935です。 つまり ------------------------------------------------------------------- glFinish(); start = clock(); for (int i=0; i<numIterations; i++) { ・ ・ ・ glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); //ここからの続く頂点情報の入力を大量にする glVertex2f(0.0, 0.0); glTexCoord2f(texSize, 0.0); glVertex2f(texSize, 0.0); glTexCoord2f(texSize, texSize); (続く)
(続き) glVertex2f(texSize, texSize); glTexCoord2f(0.0, texSize); glVertex2f(0.0, texSize); ・ // 大量 ・ // 大量 ・ // 多量 ・ // 大量 glEnd(); ・ ・ ・ } glFinish(); end = clock(); ------------------------------------------------------------------- で、(入力部分が逐次処理なので)大量の頂点情報の入力で作られるパフォーマンスの低下を出来るだけ避けたいのです。 glVertexPointer()を使って、glDrawElements()やglDrawArrays()を使う手もあるのですが、 中身がわからないので、どのくらいのパフォーマンスアップにつながっているのかわからないのです。 それとこの他にも、頂点入力についてパフォーマンス低下を防ぐ、よい方法というものはないのでしょうか? 御教授をお願いします。
DisplayListつかえ
>中身がわからないので、どのくらいのパフォーマンスアップにつながっているのかわからないのです。 基本的に中身を知る必要はないし、どのくらいパフォーマンス違うかは試してみれば分かる事かと。 頂点の内容が変化しないなら、基本はDisplayListで、次はVertexBufferObjectを 使ってみれば良いんじゃないかな〜。
非常に参考になります <(_ _)> >943,944 それと、もうひとつ質問があるのですが 「Direct Rendering」「ハードウェアアクセレータ」といった単語はよく聞くのですが、 Windows上でOpenGLプログラミングを行うのと、Unix系OS上で(Xウィンドウ上で) OpenGLプログラミングを行うときの違いが今ひとつわかりません。 両者のOSを初めてインストールした段階で(例えばfedora core6とWindows xpで)、 それぞれOpenGLプログラミングを行おうとしたとき 初期設定でパフォーマンスに違いが出てくるのは、どのようなことが原因でしょうか? またそれを改善するためにはどのようにすればよいでしょうか? ぶっちゃけパソコンのパフォーマンスをOpenGLプログラムで可能な限り活用したいのですが・・・・
>>945 OSにより異なる初期設定で、パフォーマンスに違いが出てくることって、
あるんですか?
そんなところよりも、グラフィックカードに気を配るほうが重要だと思うのですが、
なにか特殊な用途があるのでしょうか。
>>945 それはそれぞれの環境の板で聞くべきことだと思うが
Windowsで遅い時
・標準ドライバで動いていないか
・専用のドライバが古くないか
OS添付のは遅かったり古かったり。
メーカーのHPに行って最新を探してくる
・アクセラレーションについて個別の設定項目がある場合、
そのせいでパフォーマンスが悪化していたり、RendererがGDI Genericになっていないか
画面のプロパティとかで適当に設定
Linuxで遅い場合
・Xの設定は問題ないか(DRI、GLXが有効になっているか、専用のDriverを指定しているか)
ディストリの流儀に従いつつxf86configやらxorgconfigやらdpkg-reconfigureやらでいじる
glxinfoでDirect Rendering:Yesを確認すること
・そもそもディストリにドライバが収録されているか
なかったら自分でmake
ともかく遅い場合
・VRAMをSystemメモリから拝借していて、その量が少なすぎないか
BIOSで適当に設定
・てめえのプログラムが糞でないか
LANケーブルを引っこ抜いて首を吊れ
950 :
デフォルトの名無しさん :2007/04/14(土) 18:44:44
赤本とは なんか2.0対応版とか出たようだが、 これは加筆なのか? それとも2.0とか1.5に「しか」言及してないものなのか?
>>946 >>948 ありがとうございます。試してみます
FTGLの解決の糸口も見えたので、何とかできそうです。
もし問題があったらまたきますのでよろしくお願いします。
ありがと
954 :
デフォルトの名無しさん :2007/04/18(水) 19:46:20
GLUTってLinux版はないのですか。 Mesaには含まれてますがMesaとは ソフトウェアレンダリングのライブラリだとか何だとかいう話なので ハードウェアレンダリングさせたい用途には使えないのかと 単に、GLUTのような代替ライブラリがほしいだけです
とりあえずGLUTをジーエルユーテーって言うのをやめろ! 復活の呪文思い出す。
じゃ…ぐるっと?
どこまでもぐるっとお見通しだ!
そもそもmesaって何なの。
>>959 opensourceなopenglの実装だろ。
とはいってもハードウェア固有のコードも持ってるので、
x回りの3d(glx)とドライバを統括してるようなもんかな?(driと合わせて)
libGLの多くの部分がソフト実装orハードウェアの詳細が
わからないので最適化できないとかで遅かったりするが、
簡単なvertex/fragment shaderあたりくらいはもっさりながら動くよ。
他のプラットフォーム向けのコードもあるけど詳しく知らん。
GLUT って窓開いたり、イベント拾ったり、文字描いたりするのに使う ユーティリティライブラリでしょ。レンダリングアクセラレーションには 関係無いと思うんだけど、俺なんか勘違いしてる? 代替ライブラリとしては SDL, Allegro, FLTK, Gtk+, Xlib, etc. 等 好きなの使えば良いんじゃない。大抵の GUI ライブラリなら OpenGL 用のキャンバスくらい持ってる。 それと Mesa 自身はソフトウェアベースのラスタライザだけど、DRI のフロントエンドにも使われているんで、OS にグラフィックカードの ドライバが入っていて、きちんと設定されていればハードウェア アクセラレーションされる筈だよ。
シェーダにモデリング行列を渡す必要があるのですが、gluLookAt()を使う場合 モデリング行列とビュー行列を切り離すためには float ViewMatrixBuf[16], ModelMatrixBuf[16]; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(); glGetFloatv(GL_MODELVIEW, ViewMatrixBuf); cgGLSetMatrixParameterfc(Cg_ViewMatrix, ViewMatrixBuf);// シェーダに行列を渡す関数 として、以下描画するオブジェクト毎に glLoadIdentity(); glRotate(); glScale(); glTranslate(); glGetFloatv(GL_MODELVIEW, ModelMatrixBuf); cgGLSetMatrixParameterfc(Cg_ModelMatrix, ModelMatrixBuf); draw(); とすればいいのでしょうか?
>>962 合ってるか合ってないかで言うならそれで合ってると思うけど、
わざわざOpenGLに計算させて拾いにいくより、
CPUで(SSEとかで)計算した方が速いと思うなぁ・・・。
話変わるけど、最近のopengl32.dllって、SSEとか対応してるんでしょうかね。
それとも昔のまんま??
>>963 どうも挙動がおかしかったので不審に思っていたら全く違うミスが原因でした。
上記のコードでよかったようです。ありがとうございました。
nVidiaのサンプルコードは行列関係全部自前でやってたのでCPUでやった方が速いのかもしれません。
が、半分趣味のような物なので速度はさほど気にしないことにしてます。
SSEとかはなんかややこしいコードを埋め込んだりするイメージがあるのでやってません。
真面目な話、GLUTってどう発音するの? ぐるっと? ぐらっと? じーえるゆーてぃー? ぐると?
グルトとかガルトって読んでる
じーえる・ゆーてぃー派
ゆーしーえーてぃ
OpenGLはオープングル?
オーピーエングル
グルート
ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノエム・シー・エー
うちの社内では、「ぐらっと」が多数。 読み方が分からない人が「じーえるゆーてぃー」って言う事があるくらいかな。
むしろ、GLをどう発言しているのかと・・・
$ say glut ぐらっと $ say glu ぐるー $ say gl じーえる
977 :
デフォルトの名無しさん :2007/04/23(月) 13:09:11
MESA ×メサ ○ミィーザ 英語は発音大事。
ブラックミィーザ
OpenGLって以外に速いね
誰かJOGLで日本語表示できるライブラリ知らない? くだすれで聞いた方が良い?
>>980 JOGL自体はOpenGLのラッパーみたいなもんだと思うから、
日本語表示に関してはやっぱ別ライブラリ使って遠廻しに
OpenGLの表示と結びつけないとだめかも。
最近gtk+とCairoで遊んでて日本語表示に関しても満足な
コーディングできてる。CairoのJavaバインディング探して
みるといいかも。
983 :
デフォルトの名無しさん :2007/04/24(火) 13:55:04
豆知識 用語編 「ラッパー」 ヨー カモッ エヘ ヤー カモッ のこと。
984 :
981 :2007/04/24(火) 14:13:22
>>982 うん、そうかも。俺が言ってた方法だと文字列の描画は別の仕組みに任せて
その結果をテクスチャにする方法。確かにいろいろ方法はあるなあ。
>>983 チェケラ。
JOGLの最近のバージョンにはTextRendererなるものが…これじゃ駄目かな? 981が言ってるようなテクスチャ使うタイプだけど。
986 :
980 :2007/04/25(水) 19:23:12
JOGL1.1.0見てきました。描画バックエンドにJOGL使いたいだけで外見上は完全2Dなんでこの新しいパッケージが使えるかな・・・ ソース見てないけどGraphics2DでGLインスタンスをラップしてjava2Dで合成した画像をテクスチャとして張り付けてるみたいね。 1.0まではここら辺を自分で用意しなくちゃいけなかったんで作り出す前に要件に合うライブラリがないか探してたんだが 本家が対応するとは・・・ JDKに取り込まれてない標準絡みはころころ変わるから困る。 騒がせてごめんお。JOGL1.1.0で頑張る事にする。thx!! #cairoのjavaポートがあるのは知ってたんだけどjniの使用は標準拡張までに留めたかったんで候補に上がらなかったんだ。
次スレ立てれる人頼む
関連スレのリンクはpc11に変更するとして テンプレの他のリンクは今までどおりでいいかな?
おけー
乙
O
993 :
デフォルトの名無しさん :2007/04/27(金) 22:34:08
p
994 :
デフォルトの名無しさん :2007/04/27(金) 22:35:17
Penisss
5
(;´Д`) モウガマンデキナイ!! (*´Д`) シュッ Σ⊂彡_,,..i'"': |\`、: i'、 \\`_',..-i \|_,..-┘ ( *´ω`)ムシャムシャ つi'"': `、:_i'
3
2
1
.
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。