トップページ > 記事閲覧
3D表示の拡大縮小
名前:教えてくん 日時: 2015/07/21 22:22

3Dの表示をカメラまわりの設定だけで拡大縮小したいのですが、どう実装したらよいでしょう スクリーンやモデルのサイズ変更をするのではなく、あくまでカメラまわりだけでです。 自分なりにやってみた方法としては、 ・まずSetDrawAreaで書き込む範囲を指定する ・SetCameraScreenCenterで消失点を書き込みたい範囲の真ん中に持ってくる ・表示を拡大縮小するために視野角をいじる。。? と、ここで分からなくなってしまいました 拡大縮小後の視野角を一定にするためには(デフォルトの視野角 * スクリーンのサイズ / 拡大縮小後のサイズ)とすればいけるかなと思ったのですが、思い通りに動きませんでした。。。 どうしたらよいかご教授ください。。 ちなみに最終的に求めている動きは、Windowのサイズを可変にした状態で正しく3D表示をすることです
メンテ

Page: 1 |

Re: 3D表示の拡大縮小 ( No.1 )
名前:教えてくん 日時:2015/07/22 01:59

最後の一行に補足です 私はウィンドウサイズを可変にするためにメインのスクリーンサイズ(SetGraphModeの引数)を大きく(GetDefaultState()で求められるディスプレイのサイズ)取っています。 すると、スクリーンの範囲と実際のウィンドウで表示される範囲が異なるため、うまいことずらさなくてはなりません。 2Dの処理はごにょごにょ計算して縦横比を崩さないように座標を取って表示していましたが、3Dはそうもいきません。 大きなスクリーンに描画してから2Dのように計算して縮小という手や、描画に必要なサイズのスクリーンを作って描画するという手は無駄が多いためやめました。 視野角やアスペクト比はいじったことがなかったので扱いに手こずっております。 どうか回答よろしくお願いします
メンテ
Re: 3D表示の拡大縮小 ( No.2 )
名前:管理人 日時:2015/07/23 02:34

おそらく SetDraw3DScale という関数に適切な引数を渡して呼ぶことでご希望の処理を実現することができると思います // 3D描画の拡大率を設定する( 1.0f = 100% 0.5f = 50% ) int SetDraw3DScale( float Scale ) ; 単純に3Dの描画結果にスケーリングを掛けるための関数です ウインドウサイズに合わせて SetCameraScreenCenter や SetDrawArea も併用しつつ 引数の Scale の値を変化させて呼び出してみてください ( この関数を使用する場合は視野角は変化させなくて大丈夫です )
メンテ
Re: 3D表示の拡大縮小 ( No.3 )
名前:教えてくん 日時:2015/07/24 12:52

出来ました! ありがとうございました!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存