SpotLight 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
燈光物件,這個物件會沿著指定的方向在圓錐形區域中投射其效果。
public ref class SpotLight sealed : System::Windows::Media::Media3D::PointLightBase
public sealed class SpotLight : System.Windows.Media.Media3D.PointLightBase
type SpotLight = class
inherit PointLightBase
Public NotInheritable Class SpotLight
Inherits PointLightBase
- 繼承
範例
下列範例示範如何在 3D 場景中建立 SpotLight 。
<!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
to control the size of the light cone created by the SpotLight. The Direction and Position
properties determine where the SpotLight is pointing in the scene. In this example, the Position
of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
of the 3D object. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1"
Position="1,1,6" Range="20"/>
</ModelVisual3D.Content>
</ModelVisual3D>
下列程式碼顯示整個範例。
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DockPanel>
<Viewbox>
<Canvas Width="321" Height="201">
<!-- The Viewport3D provides a rendering surface for 3-D visual content. -->
<Viewport3D ClipToBounds="True" Width="150" Height="150" Canvas.Left="0" Canvas.Top="10">
<!-- Defines the camera used to view the 3D object. -->
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,2" LookDirection="0,0,-1" FieldOfView="60" />
</Viewport3D.Camera>
<!-- The ModelVisual3D children contain the 3D models -->
<Viewport3D.Children>
<!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
to control the size of the light cone created by the SpotLight. The Direction and Position
properties determine where the SpotLight is pointing in the scene. In this example, the Position
of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
of the 3D object. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1"
Position="1,1,6" Range="20"/>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<!-- The geometry specifies the shape of the 3D plane. In this sample, a flat sheet is created. -->
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0,1,2 3,4,5 "
Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
</GeometryModel3D.Geometry>
<!-- The material specifies the material applied to the 3D object. In this sample a linear gradient
covers the surface of the 3D object.-->
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>
</Canvas>
</Viewbox>
</DockPanel>
</Page>
備註
SpotLight 是一 PointLight 種 ,因為它具有位置、範圍和衰減。 不過, SpotLight 也可讓您控制光線效果圓錐的方向、形狀和其他屬性。
指定 (的值 OuterConeAngle ,其不會) 照亮, (InnerConeAngle 其中所有專案都完全亮起,) 變更焦點效果。
內部圓錐和外錐體外部之間的光源會以線性方式下降。
建構函式
SpotLight() |
初始化 SpotLight 類別的新執行個體。 |
SpotLight(Color, Point3D, Vector3D, Double, Double) |
使用指定的色彩、位置、方向和圓錐形角度,初始化 SpotLight 類別的新執行個體。 |
欄位
DirectionProperty |
識別 Direction 相依性屬性。 |
InnerConeAngleProperty |
識別 InnerConeAngle 相依性屬性。 |
OuterConeAngleProperty |
識別 OuterConeAngle 相依性屬性。 |
屬性
Bounds |
取得 Rect3D,它會指定這個 Model3D 與軸對齊的週框方塊。 (繼承來源 Model3D) |
CanFreeze |
取得值,指出是否可以將物件設為不可修改。 (繼承來源 Freezable) |
Color |
取得或設定燈光色彩。 (繼承來源 Light) |
ConstantAttenuation |
取得或設定常數值,光線強度會隨著距離依這個值減少。 (繼承來源 PointLightBase) |
DependencyObjectType |
DependencyObjectType取得包裝這個實例之 CLR 型別的 。 (繼承來源 DependencyObject) |
Direction | |
Dispatcher |
取得與這個 Dispatcher 關聯的 DispatcherObject。 (繼承來源 DispatcherObject) |
HasAnimatedProperties |
取得值,這個值表示是否有一個或多個 AnimationClock 物件與這個物件的任何一個相依性屬性相關聯。 (繼承來源 Animatable) |
InnerConeAngle |
取得或設定角度,這個角度指定 SpotLight 的圓錐形投射比例,場景中位於這個比例內的物件會被燈光的完整強度照到。 |
IsFrozen |
取得值,該值表示物件目前是否可修改。 (繼承來源 Freezable) |
IsSealed |
取得值,這個值表示此執行個體目前是否已密封 (唯讀)。 (繼承來源 DependencyObject) |
LinearAttenuation |
取得或設定值,這個值指定光線強度隨著距離而線性減少的量。 (繼承來源 PointLightBase) |
OuterConeAngle |
取得或設定角度,這個角度指定 SpotLight 的圓錐形投射比例,場景中位於這個比例之外的物件不會被燈光照到。 |
Position |
取得或設定 Point3D,它指定燈光在全局空間中的位置。 (繼承來源 PointLightBase) |
QuadraticAttenuation |
取得或設定值,這個值指定燈光效果隨著距離而減少的量,以二次方運算計算。 (繼承來源 PointLightBase) |
Range |
取得或設定距離,燈光在該距離之外沒有作用。 (繼承來源 PointLightBase) |
Transform |
取得或設定模型上所設定的 Transform3D。 (繼承來源 Model3D) |
方法
事件
Changed |
發生於 Freezable 或所含的物件遭到修改時。 (繼承來源 Freezable) |
明確介面實作
IFormattable.ToString(String, IFormatProvider) |
使用指定的格式,格式化目前執行個體的值。 (繼承來源 Model3D) |