■ GeometryModel3D 엘리먼트에서 리소스를 사용해 모델을 공유하는 방법을 보여준다.
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
<Window x:Class="TestProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="800" Height="600" Title="GeometryModel3D 엘리먼트 : 리소스를 사용해 모델 공유하기" Background="SkyBlue" FontFamily="나눔고딕코딩" FontSize="16"> <Window.Resources> <GeometryModel3D x:Key="PyramidGeometryModel3DKey"> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="0 1 0, -0.5 0 0.5, 0.5 0 0.5, 0 1 0, 0.5 0 -0.5, -0.5 0 -0.5, 0 1 0, -0.5 0 -0.5, -0.5 0 0.5, 0 1 0, 0.5 0 0.5, 0.5 0 -0.5" TriangleIndices="0 1 2, 3 4 5, 6 7 8, 9 10 11" /> </GeometryModel3D.Geometry> <GeometryModel3D.Material> <DiffuseMaterial Brush="Gray" /> </GeometryModel3D.Material> </GeometryModel3D> </Window.Resources> <Viewport3D> <ModelVisual3D> <ModelVisual3D.Content> <GeometryModel3D> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="-1000 0 5, 1000 0 5, -1000 0 -1000, 1000 0 -1000" TriangleIndices="0 1 2, 1 3 2" /> </GeometryModel3D.Geometry> <GeometryModel3D.Material> <DiffuseMaterial Brush="Gold" /> </GeometryModel3D.Material> </GeometryModel3D> </ModelVisual3D.Content> </ModelVisual3D> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}" /> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}"> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="-1" OffsetZ="-5" /> </ModelVisual3D.Transform> </ModelVisual3D> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}"> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="1.5" OffsetZ="-10" /> </ModelVisual3D.Transform> </ModelVisual3D> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}"> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="3" OffsetZ="-3" /> </ModelVisual3D.Transform> </ModelVisual3D> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}"> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="10" OffsetZ="-25" /> </ModelVisual3D.Transform> </ModelVisual3D> <ModelVisual3D Content="{StaticResource PyramidGeometryModel3DKey}"> <ModelVisual3D.Transform> <TranslateTransform3D OffsetX="0" OffsetZ="-50" /> </ModelVisual3D.Transform> </ModelVisual3D> <ModelVisual3D> <ModelVisual3D.Content> <Model3DGroup> <AmbientLight Color="#404040" /> <DirectionalLight Color="#c0c0c0" Direction="2 -3 -1" /> </Model3DGroup> </ModelVisual3D.Content> </ModelVisual3D> <Viewport3D.Camera> <PerspectiveCamera Position="-1 2 4" LookDirection="1 -1 -4" UpDirection="0 1 0" FieldOfView="45" /> </Viewport3D.Camera> </Viewport3D> </Window> |