開発環境 |
Microsoft Visual Studio Express 2013 for Windows Desktop |
実行環境 |
Microsoft Windows 8.1 (64bit) |
プロジェクトの種類 |
Visual C#/空のプロジェクト |
プロジェクト名 |
SdxTeapot |
SlimDX Developer SDK(January 2012)をインストールする。
参考
以下のファイルをプロジェクトに追加する。
参照設定/参照の追加
アセンブリ/拡張 |
SlimDX |
C:\Program Files (x86)\SlimDX SDK (January 2012)\Bin\net40\x64\SlimDX.dll |
アセンブリ/フレームワーク |
System.Drawing |
|
アセンブリ/フレームワーク |
System.Windows.Forms |
|
プロジェクトのプロパティ
アプリケーション |
出力の種類 |
Windows アプリケーション |
ビルド |
プラットフォーム ターゲット |
x64 |
Program.xaml
using SlimDX;
using SlimDX.Direct3D9;
using SlimDX.Windows;
using System;
using System.Drawing;
namespace SdxTeapot
{
class Program
{
[STAThread]
static void Main()
{
var form = new RenderForm("SlimDX - Mesh");
var device = new Device(
new Direct3D(),
0,
DeviceType.Hardware,
form.Handle,
CreateFlags.HardwareVertexProcessing,
new PresentParameters
{
BackBufferWidth = form.ClientSize.Width,
BackBufferHeight = form.ClientSize.Height,
});
device.SetRenderState(RenderState.ZEnable, ZBufferType.UseZBuffer);
device.SetRenderState(RenderState.CullMode, Cull.None);
device.SetRenderState(RenderState.Lighting, true);
device.SetLight(0, new Light
{
Type = LightType.Directional,
Direction = new Vector3(1.0f, -1.0f, 1.0f),
Diffuse = Color.White,
Ambient = Color.FromArgb(50, 50, 50)
});
device.EnableLight(0, true);
device.Material = new Material
{
Diffuse = Color.Gold
};
var mesh = Mesh.CreateTeapot(device);
MessagePump.Run(form, () =>
{
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.CornflowerBlue, 1.0f, 0);
device.BeginScene();
device.SetTransform(TransformState.World, Matrix.RotationY(Environment.TickCount / 1000.0f));
device.SetTransform(TransformState.View, Matrix.LookAtRH(
new Vector3(0.0f, 3.0f, 0.0f - 5.0f),
new Vector3(0.0f, 0.0f, 0.0f),
new Vector3(0.0f, 1.0f, 0.0f)));
device.SetTransform(TransformState.Projection,
Matrix.PerspectiveFovRH(3.0f / 4.0f, 1.0f, 1.0f, 100.0f));
mesh.DrawSubset(0);
device.EndScene();
device.Present();
});
foreach (var item in ObjectTable.Objects)
{
item.Dispose();
}
}
}
}
最終更新:2014年06月02日 18:27