■ SpecularMaterial 엘리먼트를 사용하는 방법을 보여준다.
▶ 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 98 99 100 101 102 103 104 105 106 107 108 109 |
<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="SpecularMaterial 엘리먼트 사용하기" FontFamily="나눔고딕코딩" FontSize="16"> <Viewport3D> <ModelVisual3D> <ModelVisual3D.Content> <GeometryModel3D> <GeometryModel3D.Geometry> <MeshGeometry3D Positions="-1.00 1 0.00, -0.99 1 0.16, -0.95 1 0.31, -0.89 1 0.45, -0.81 1 0.59, -0.71 1 0.71, -0.59 1 0.81, -0.45 1 0.89, -0.31 1 0.95, -0.16 1 0.99, 0.00 1 1.00, 0.16 1 0.99, 0.31 1 0.95, 0.45 1 0.89, 0.59 1 0.81, 0.71 1 0.71, 0.81 1 0.59, 0.89 1 0.45, 0.95 1 0.31, 0.99 1 0.16, 1.00 1 0.00, -1.00 -1 0.00, -0.99 -1 0.16, -0.95 -1 0.31, -0.89 -1 0.45, -0.81 -1 0.59, -0.71 -1 0.71, -0.59 -1 0.81, -0.45 -1 0.89, -0.31 -1 0.95, -0.16 -1 0.99, 0.00 -1 1.00, 0.16 -1 0.99, 0.31 -1 0.95, 0.45 -1 0.89, 0.59 -1 0.81, 0.71 -1 0.71, 0.81 -1 0.59, 0.89 -1 0.45, 0.95 -1 0.31, 0.99 -1 0.16, 1.00 -1 0.00" Normals="-1.00 0 0.00, -0.99 0 0.16, -0.95 0 0.31, -0.89 0 0.45, -0.81 0 0.59, -0.71 0 0.71, -0.59 0 0.81, -0.45 0 0.89, -0.31 0 0.95, -0.16 0 0.99, 0.00 0 1.00, 0.16 0 0.99, 0.31 0 0.95, 0.45 0 0.89, 0.59 0 0.81, 0.71 0 0.71, 0.81 0 0.59, 0.89 0 0.45, 0.95 0 0.31, 0.99 0 0.16, 1.00 0 0.00, -1.00 0 0.00, -0.99 0 0.16, -0.95 0 0.31, -0.89 0 0.45, -0.81 0 0.59, -0.71 0 0.71, -0.59 0 0.81, -0.45 0 0.89, -0.31 0 0.95, -0.16 0 0.99, 0.00 0 1.00, 0.16 0 0.99, 0.31 0 0.95, 0.45 0 0.89, 0.59 0 0.81, 0.71 0 0.71, 0.81 0 0.59, 0.89 0 0.45, 0.95 0 0.31, 0.99 0 0.16, 1.00 0 0.00" TextureCoordinates="0.00 0, 0.05 0, 0.10 0, 0.15 0, 0.20 0, 0.25 0, 0.30 0, 0.35 0, 0.40 0, 0.45 0, 0.50 0, 0.55 0, 0.60 0, 0.65 0, 0.70 0, 0.75 0, 0.80 0, 0.85 0, 0.90 0, 0.95 0, 1.00 0, 0.00 1, 0.05 1, 0.10 1, 0.15 1, 0.20 1, 0.25 1, 0.30 1, 0.35 1, 0.40 1, 0.45 1, 0.50 1, 0.55 1, 0.60 1, 0.65 1, 0.70 1, 0.75 1, 0.80 1, 0.85 1, 0.90 1, 0.95 1, 1.00 1" TriangleIndices=" 0 21 1, 1 21 22, 1 22 2, 2 22 23, 2 23 3, 3 23 24, 3 24 4, 4 24 25, 4 25 5, 5 25 26, 5 26 6, 6 26 27, 6 27 7, 7 27 28, 7 28 8, 8 28 29, 8 29 9, 9 29 30, 9 30 10, 10 30 31, 10 31 11, 11 31 32, 11 32 12, 12 32 33, 12 33 13, 13 33 34, 13 34 14, 14 34 35, 14 35 15, 15 35 36, 15 36 16, 16 36 37, 16 37 17, 17 37 38, 17 38 18, 18 38 39, 18 39 19, 19 39 40, 19 30 20, 20 40 41" /> </GeometryModel3D.Geometry> <GeometryModel3D.Material> <MaterialGroup> <DiffuseMaterial Brush="Black" Color="Black" /> <SpecularMaterial SpecularPower="5"> <SpecularMaterial.Brush> <ImageBrush ImageSource="./sample.jpg" /> </SpecularMaterial.Brush> </SpecularMaterial> </MaterialGroup> </GeometryModel3D.Material> </GeometryModel3D> </ModelVisual3D.Content> </ModelVisual3D> <ModelVisual3D> <ModelVisual3D.Content> <AmbientLight Color="White" /> </ModelVisual3D.Content> </ModelVisual3D> <ModelVisual3D> <ModelVisual3D.Content> <DirectionalLight Color="#c0c0c0" Direction="0 0 -1" /> </ModelVisual3D.Content> <ModelVisual3D.Transform> <RotateTransform3D> <RotateTransform3D.Rotation> <AxisAngleRotation3D x:Name="axisAngleRotation3D" Axis="0 1 0" /> </RotateTransform3D.Rotation> </RotateTransform3D> </ModelVisual3D.Transform> </ModelVisual3D> <Viewport3D.Camera> <PerspectiveCamera Position="0 0 4" LookDirection="0 0 -1" UpDirection="0 1 0" FieldOfView="60" /> </Viewport3D.Camera> </Viewport3D> <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <BeginStoryboard> <Storyboard TargetName="axisAngleRotation3D" TargetProperty="Angle"> <DoubleAnimation From="0" To="360" Duration="0:0:3" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> </Window> |