どんな3Dソフトでも、アンチエイリアスを無しで低解像度でレンダリングすればドット絵っぽくなります。
さらに、正射影(平行投影)にしてパースを無くしたり、トーンシェーディングで影のスムーズさを消したりすれば、
ドット絵っぽさは上がると思います。
DXライブラリでやるにはMakeScreenで低解像度の画面を作ってそこに3Dモデルを描画して
それをネアレストネイバー法で拡大描画すればできます。
サンプル↓(使用してる画像と3DモデルはDXライブラリの「サンプルプログラム実行用フォルダ」に入っている物です)
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// ウインドウモードに変更
ChangeWindowMode(TRUE);
// 画面モードの設定
SetGraphMode(1280, 720, 32);
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// JPEG画像のメモリへの読みこみ
int GHandle = LoadGraph("TestTex1.jpg");//←ライブラリに同封されている画像
// 3Dモデルを読み込む
int ModelHandle = MV1LoadModel("DxChara.x");//←ライブラリに同封されているモデル
// MakeScreenで作成されるスクリーンのアンチエイリアスをOFFにする(デフォルトでOFFだけど一応やっておく)
SetCreateDrawValidGraphMultiSample(1,0);
// アルファチャンネル付きの描画可能な低解像度画像を作成する
int handle = MakeScreen(64, 64, true);
// モデルのY回転値
float YRotate = 0;
// ESCキーが押されるまでループ
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
{
// 描画先を低解像度画像にする
SetDrawScreen(handle);
// 画面を初期化
ClearDrawScreen();
// カメラを正射影に変更(パースがなくなる)
SetupCamera_Ortho(900.0f);
// モデルの見える位置にカメラを配置
SetCameraPositionAndTarget_UpVecY(VGet(0.0f, 400.0f, -500.0f), VGet(0.0f, 400.0f, 0.0f));
//3DモデルのY軸の回転値を加算する
YRotate = YRotate + 0.01f;
// 3DモデルのY軸の回転値をセットする
MV1SetRotationXYZ(ModelHandle, VGet(0,YRotate,0));
// モデルを描画
MV1DrawModel(ModelHandle);
// 描画先を裏画面にする
SetDrawScreen(DX_SCREEN_BACK);
// 画面を初期化
ClearDrawScreen();
// 描画モードをバイリニア法にする(スムーズに拡大)
SetDrawMode(DX_DRAWMODE_BILINEAR);
// 2Dグラフィックの拡大描画
DrawExtendGraph(0, 0, 1280, 720, GHandle, true);
// 描画モードをネアレストネイバー法にする(ドットを維持したまま拡大)
SetDrawMode(DX_DRAWMODE_NEAREST);
// 3Dグラフィックの拡大描画
DrawRotaGraph2(640, 360, 32, 32, 4, 0, handle, true, false);
// 裏画面の内容を表画面に反映させる
ScreenFlip();
}
// 読み込んだモデルの削除
MV1DeleteModel(ModelHandle);
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}