• 締切済み

メタセコイア+OpenGL+VC++

開発環境VC++でOpenGLを使ってプログラミングをしているものです。 いまより複雑なモデルを3Dで描きたくて、最近メタセコイアなるものがあることを知りました。 これを使って作成した"***.x"を描画することが「C#とDirectX」の環境下で実現できたのですが、「VC++とOpenGL」の環境下で出力させるにはどうすればよいかわかりません。 ご教授お願いします。

みんなの回答

  • furyfox
  • ベストアンサー率56% (58/103)
回答No.1

Xファイルっていうのは 頂点座標等が書かれたただのテキストファイル(バイナリ版もある)です。 (メタセコイアが吐く物はテキストエディタで開けるはずです。) 簡単にモデルを表示できるように、そういうフォーマットが DirectXで用意されているだけです。 ※Xファイルの詳細についてはhttp://msdn2.microsoft.com/en-us/default.aspxで「X File Format」で検索できます。 Xファイルのフォーマットについては上記MSDNに 書かれているのでそれを参考にOpenGLでXファイルを表示できるような 仕組みを作ればよいでしょう。 普通OpenGLで表示する場合はすべて自前だと思います。 DirectXを使ったアプリケーションであっても本格的なソフトはXファイルの形式 を利用していないものが多いと思います。

関連するQ&A

  • vc++のpictureboxにopenGLの画像を描画する方法につい

    vc++のpictureboxにopenGLの画像を描画する方法について。 現在、Visual C++ 2010のフォームアプリケーションで、任意のパラメータを入力したらその値に応じて物体の動きが変わるといったアプリケーションを開発しています。その動き方をopenGLでアニメーションとして可視化したいと思っています。そして、そのアニメーションをvc++のフォームアプリケーションのpictureboxに表示したいと思っているのですが、vc++とopenGLのどちらもかなりの初心者なので、pictureboxへの表示の仕方がわかりません。 以下に参考URLを貼らせていただきます。このようなものにパラメータを入力する部分を設けたものを作りたいのですが、まったく意味がわかりません。どなたかご教授お願いいたします。 http://www.t-pot.com/program/127_OpenGLNET/index.html

  • VC++でperlプログラムを動かすには

    VC++でOpenGLを動かしているんですが, その途中でperlのプログラムを動かしたい場合,どうしたらよいのでしょうか? 詳しい動きとしては, 1.perlのプログラムを動かして,txtデータを出力する 2. その出力したtxtをOpenGLの中で読み込んで,描画を表示 3.再びperlのプログラムを動かして,新しいtxtデータを出力する 4. その出力したtxtをOpenGLの中で読み込んで,描画を表示 この繰り返しです. この一連の動作をVC++でいっぺんに行いたいのですが, 可能でしょうか? 何かもっと詳細が知りたい場合は,なんでも聞いてください! よろしくお願いします.

  • OpenGLでプログラミング

    現在、OpenGLの勉強をしているのですが、 Cのプログラムの中でOpenGLを使いたいと思っています。 でも、いろいろなサイトを見てみたのですが、 OpenGLはVC++では使えるようですがVC++.NETでは使えないのでしょうか? 私が所有しているのはMicrosoft Visual C++.NET Standardで、 PCはNECのバリュースターLシリーズの300/3Dです。 VC++.NETでプログラミングができない場合、 VC++を手に入れたほうがいいのでしょうか?教えてください。

  • 3Dゲームを作りたい

    3Dゲームを作りたい 自分はC言語が少しわかる程度なのですが、3Dゲームの作り方を勉強したいと思います。 OpenGLの方がDirectXよりも簡単だと聞いたので、OpenGLを使いたいと思っています。 それとメタセコイアでの3Dキャラクターのモデリングの仕方もわかっているのですが、ここで質問です。 メタセコイアで作ったキャラクターにMIKOTO等でボーンを通して、OpenGLを使ってキャラクターを動かすことはできるのでしょうか?(DirectXでもかまいません) 例えばキー操作で腕を上げたり、歩いたりなどは可能でしょうか。 まだゲームプログラミングについてよくわかってないので馬鹿な質問をしてるかもしれませんが、回答よろしくお願いします。

  • DirectXとOpenGLはどちらが動作が軽い?

    環境:Visual Studio 2005 WinXP Win32 C/C++ Windowsプログラミングを一通り勉強したので、 次は3Dプログラミングに挑戦したいと思っています。 DirectXとOpenGL、どちらを学習しようか決めかねています。 最終的にはとても軽く動作する3Dゲームを作りたいです。 そこで、たとえばまったく同じ動作をする DirectXの3Dゲームと、OpenGLの3Dゲームがある場合、 どちらのほうが動作が軽いのでしょうか。 ここでいう「動作が軽い」というのは、 そのゲームが使用するメモリ量、CPU量などが低く動作が快適なものです。 メールソフトやブラウザを同時に起動しても気にならない ほど軽いものが作りたいと思っています。

  • Xファイルについて

    DirectX3Dゲームプログラミングを勉強中なのですが、Xファイルを読み込み描画することをしています。Xファイルをメタセコイアというソフトを使って作成できたのですが、そのXファイルをXファイルビューワーで見てみたところ、色がなく黒い物体になっていました。どうすればXファイルから色や模様などを読み込めるようにできるのでしょうか?マスタリングDirectXプログラミングという書籍のサンプルフォルダにあったXファイルには色や模様が付いていました。

  • OpenGLでの描画のタイミング

     OpenGLの使い方について疑問があったので質問しました.  OpenGLを用いて3Dのゲームを作っています.しかし, どうも処理が遅くカクカクした動きになってしまいます. 描画の量が多くなるにつれて遅くなっているので,原因は 描画の時に原因があるようです.ダブルバッファリング を用いて描画しているのですが,描画のときは… 1「描画関数の実行」(glVertex3f()などの実行) 2「裏に描画」(見えていないバッファに描画) 3「裏表入れ替え」(2つのバッファを交換) 0「一定時間待機して自分自身を呼び出す」            (60FPSなら1/60秒程度) を繰り返すものと考えています.  「1230」と繰り返せば通常通り動くのですが, 「1」に計算がかかりすぎると,「2」と「3」が遅れてしまい, カクカクしてしまうのだろうと考えました. (↑これがそもそも間違っていたらすいません><)  そこで,対策を2つ考えたのですが,これでいいでしょうか? それとも,もっと良い方法はないでしょうか?(「1」を 速くするしか方法はないでしょうか?) 【1】一定時間待機する秒数を可変的にする  現在のところ,「0」では,1/60秒待機させています.  しかし,1に1/30秒かかったとすると,「1230」を 1回繰り返すのに,3/60秒かかってしまうことになり, 結局FPSは20止まりです.  そこで,「123」でかかった時間を記録し,その秒数 を1/60から引いた分だけ「0」で待機すれば,1/60秒になる だろう,という方法です. 【2】描画のタイミングを変える  現在のところ,「1230」の順番で繰り返しています. しかし,これでは描画の関数を呼び出した時,「1」に 1/30秒かかったとすると,実際に表示できるのは1/30秒後 ということになります.よって,プログラムの始めに 「1232」を実行しておき,描画の関数の中身は 「3120」とする,という方法です. (そもそも,「2」と「3」のタイミングを   離せるのかどうかもよくわかりません><)  もちろん【1】と【2】の方法は併用もできると思っています. 「2」はOpenGLに入っているglFlush() 「3」はOpenGLに入っているglutSwapBuffers() 「0」はOpenGLに入っているglutTimerFunc() を用いています. 質問が長くなってしまいましたが,よろしくお願いします. 参考までに… 【OS】Mac OS10.7(Lion) 【開発環境】Xcode3 【言語】c++ 【プログラミング歴】6年(c++2年,OpenGL1年) 【CPU】2.66 GHz Intel Core 2 Duo 【メモリ】4 GB 1067 MHz DDR3

  • OpenGLの動くノートPC

    OpenGLが動くノートPCってないのでしょうか? (実はOpenGLのことをよく知らないのですが・・・・) DELLのノートPCでGeForce2Goを乗せた機種があるようですが これではだめなんですよね?OSがWinMeだし・・・ DirectXなど他の3D描画性能のよいノートPCの情報でも 構いませんのでご存じの方は教えて下さい。

  • OpenGLによる描画内容をBMP出力

    今、OpenGLで描画した内容をBMP形式で出力しよう思っています。VC6を使用しています。 今のところ、  ・glReadBuffer で読み取るバッファを指定する  ・glReadPixels バッファから情報を読み取る ということぐらいしかわかっていなくて、 このあとどうすればBMPファイルとして出力できるのかがわかりません。 どなたか教えていただけないでしょうか?

  • 【opengl オブジェクト読込】

    現在VC++でプログラムの開発を行っています。 Shadeや3dsMAXなどで作った3次元オブジェクトをVC++で実行するopenGL上の プログラムに読み込みたいのですがよい方法はあるでしょうか?(opengl+glut) 現在以下を参考にしてvrml形式に変更して読み込んでいるのですが、複雑な形状になると読み込めなくなってしまいます。。。 http://www.komoto.org/opengl/sample12.html ほかによいサンプルや方法などあれば教えてください。 色情報なども保持したまま読み込みたいので、dxf形式ではなくvrmlやobj形式での読み込みを考えています。

専門家に質問してみよう