DirectXにおける描画について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
atori
記事: 43
登録日時: 13年前

DirectXにおける描画について

#1

投稿記事 by atori » 12年前

現在、私はC++でフレームワークを作っております。

一箇所迷っている部分がありまして、皆さんの意見を聞けたらなと思いトピックを立てました。
タイトルにもあるとおり描画に関してなのですが、私は現在、描画を担当するDxRenderarというクラスを作って、
Draw3DやDraw2Dと言ったメソッドの引数にメッシュの情報や、テクスチャの情報を渡して描画するという方法を取っています。

が、友達のソースを見た時、私とは違う方法を取っていました。それは、例えば3DObjというクラスがあったとしたら、そのメソッドにDrawというメソッドを
作り、描画しているというものです。

確かに、自分自身を描画する、という概念だとスッキリします。
しかし、「描画」というのは一つの機能であり、それ専用のクラスを作ったほうがスッキリするような気もします。

皆さんは、どちらの方法を取るべきだと思いますか?
Done is better than perfect.(Mark Elliot Zuckerberg)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: DirectXにおける描画について

#2

投稿記事 by softya(ソフト屋) » 12年前

オブジェクト指向的には出来るだけ抽象化した方が良いので、テクスチャを渡すって考え方自体を隠蔽したいところですね。

>しかし、「描画」というのは一つの機能であり、それ専用のクラスを作ったほうがスッキリするような気もします。
機能別に分けるのは、どちらかと構造化プログラミングの考え方です。
この分け方の問題は、各オブジェクト間が密接に繋がりかねない事だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ym114

Re: DirectXにおける描画について

#3

投稿記事 by ym114 » 12年前

私もゲーム作りと並行してフレームワークを作成・拡張していますが,RendererクラスもObjクラスも作りました.
ObjのDraw関数内でRendererの描画関数を呼んでいます。
例の3DObjは一体何をどのように描画するのか分かりませんが,どちらか一つ選ぶ状況なのでしょうか(何か勘違いしていたらすみません)

atori
記事: 43
登録日時: 13年前

Re: DirectXにおける描画について

#4

投稿記事 by atori » 12年前

ソフト屋さん さんが書きました:機能別に分けるのは、どちらかと構造化プログラミングの考え方です。
機能別に分けるのが構造化プログラミング、抽象的な概念で分けるのがオブジェクト指向プログラミングなのですね。
大事な事を曖昧なままC++をやっていました。ありがとうございます。

ym114 さんが書きました:私もゲーム作りと並行してフレームワークを作成・拡張していますが,RendererクラスもObjクラスも作りました.
私もそうしています。描画だけを別の考え方として新しくクラスを作っていました。


今のフレームワークを改造して、DxRenderarクラスを消去する方針で行こうと思います。
3DObjのコンストラクタでLPDIRECT3DDEVICEを渡して、それを使って描画しようと思います。

オブジェクト指向プログラミングと構造化プログラミングの考え方の違いを明確に知ることが出来ました。
ありがとうございました。
このトピックは閉じさせて頂きます。
Done is better than perfect.(Mark Elliot Zuckerberg)

閉鎖

“C言語何でも質問掲示板” へ戻る