SpotLight クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した方向に沿って円錐形の領域に効果を投影する Light オブジェクト。
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
- 継承
例
次の例は、3-D シーンで 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 |
この Model3Dの軸揃え境界ボックスを指定する Rect3D を取得します。 (継承元 Model3D) |
CanFreeze |
オブジェクトを変更不可にできるかどうかを示す値を取得します。 (継承元 Freezable) |
Color |
ライトの色を取得または設定します。 (継承元 Light) |
ConstantAttenuation |
光の強度が距離を越えて減少する定数値を取得または設定します。 (継承元 PointLightBase) |
DependencyObjectType |
このインスタンスの CLR 型をラップする DependencyObjectType を取得します。 (継承元 DependencyObject) |
Direction | |
Dispatcher |
この DispatcherObject が関連付けられている Dispatcher を取得します。 (継承元 DispatcherObject) |
HasAnimatedProperties |
1 つ以上の AnimationClock オブジェクトがこのオブジェクトの依存関係プロパティのいずれかに関連付けられているかどうかを示す値を取得します。 (継承元 Animatable) |
InnerConeAngle |
ライトがシーン内のオブジェクトを完全に照らす SpotLightの円錐形の投影の比率を指定する角度を取得または設定します。 |
IsFrozen |
オブジェクトが現在変更可能かどうかを示す値を取得します。 (継承元 Freezable) |
IsSealed |
このインスタンスが現在シールされているかどうかを示す値を取得します (読み取り専用)。 (継承元 DependencyObject) |
LinearAttenuation |
距離に対するライトの強度の線形ディミクションを指定する値を取得または設定します。 (継承元 PointLightBase) |
OuterConeAngle |
ライトがシーン内のオブジェクトを照らさない SpotLightの円錐形の投影の比率を指定する角度を取得または設定します。 |
Position |
ワールド空間におけるライトの位置を指定する Point3D を取得または設定します。 (継承元 PointLightBase) |
QuadraticAttenuation |
2 次演算によって計算される、距離に対する光の効果のディミクションを指定する値を取得または設定します。 (継承元 PointLightBase) |
Range |
ライトが効果を持たない距離を取得または設定します。 (継承元 PointLightBase) |
Transform |
モデルに設定された Transform3D を取得または設定します。 (継承元 Model3D) |
メソッド
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
指定した DependencyPropertyに AnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。 (継承元 Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock) |
指定した DependencyPropertyに AnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。 (継承元 Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
指定した DependencyPropertyにアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定したプロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。 (継承元 Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
指定した DependencyPropertyにアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定したプロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。 (継承元 Animatable) |
CheckAccess() |
呼び出し元のスレッドがこの DispatcherObjectにアクセスできるかどうかを判断します。 (継承元 DispatcherObject) |
ClearValue(DependencyProperty) |
プロパティのローカル値をクリアします。 クリアするプロパティは、DependencyProperty 識別子によって指定されます。 (継承元 DependencyObject) |
ClearValue(DependencyPropertyKey) |
読み取り専用プロパティのローカル値をクリアします。 クリアするプロパティは、DependencyPropertyKeyで指定します。 (継承元 DependencyObject) |
Clone() |
この SpotLightの変更可能な複製を作成し、このオブジェクトの値の詳細コピーを作成します。 依存関係プロパティをコピーする場合、このメソッドはリソース参照とデータ バインディングをコピーします (ただし、解決されなくなる可能性があります)、アニメーションやその現在の値はコピーしません。 |
CloneCore(Freezable) |
基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを指定した Freezable の複製 (ディープ コピー) にします。 (継承元 Freezable) |
CloneCurrentValue() |
この SpotLight オブジェクトの変更可能な複製を作成し、このオブジェクトの現在の値の詳細コピーを作成します。 リソース参照、データ バインディング、およびアニメーションはコピーされませんが、現在の値はコピーされます。 |
CloneCurrentValueCore(Freezable) |
現在のプロパティ値を使用して、インスタンスを指定した Freezable の変更可能な複製 (ディープ コピー) にします。 (継承元 Freezable) |
CoerceValue(DependencyProperty) |
指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObjectに存在する依存関係プロパティのプロパティ メタデータで指定された CoerceValueCallback 関数を呼び出すことによって実現されます。 (継承元 DependencyObject) |
CreateInstance() |
Freezable クラスの新しいインスタンスを初期化します。 (継承元 Freezable) |
CreateInstanceCore() |
派生クラスで実装された場合は、Freezable 派生クラスの新しいインスタンスを作成します。 (継承元 Freezable) |
Equals(Object) |
指定された DependencyObject が現在の DependencyObjectと等しいかどうかを判断します。 (継承元 DependencyObject) |
Freeze() |
現在のオブジェクトを変更不可にし、その IsFrozen プロパティを |
FreezeCore(Boolean) |
この Animatable オブジェクトを変更不可にするか、変更不可にできるかどうかを判断します。 (継承元 Animatable) |
GetAnimationBaseValue(DependencyProperty) |
指定した DependencyPropertyのアニメーション化されていない値を返します。 (継承元 Animatable) |
GetAsFrozen() |
基本 (アニメーション化されていない) プロパティ値を使用して、Freezableの固定コピーを作成します。 コピーは固定されているため、固定されたサブオブジェクトは参照によってコピーされます。 (継承元 Freezable) |
GetAsFrozenCore(Freezable) |
基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを指定した Freezable の固定複製にします。 (継承元 Freezable) |
GetCurrentValueAsFrozen() |
現在のプロパティ値を使用して、Freezable の固定コピーを作成します。 コピーは固定されているため、固定されたサブオブジェクトは参照によってコピーされます。 (継承元 Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
現在のインスタンスを、指定した Freezableの固定複製にします。 オブジェクトにアニメーション化された依存関係プロパティがある場合は、現在のアニメーション化された値がコピーされます。 (継承元 Freezable) |
GetHashCode() |
この DependencyObjectのハッシュ コードを取得します。 (継承元 DependencyObject) |
GetLocalValueEnumerator() |
この DependencyObjectでローカルに値が設定されている依存関係プロパティを決定するための特殊な列挙子を作成します。 (継承元 DependencyObject) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
GetValue(DependencyProperty) |
DependencyObjectのこのインスタンスの依存関係プロパティの現在の有効な値を返します。 (継承元 DependencyObject) |
InvalidateProperty(DependencyProperty) |
指定した依存関係プロパティの有効な値を再評価します。 (継承元 DependencyObject) |
MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
OnChanged() |
現在の Freezable オブジェクトが変更されたときに呼び出されます。 (継承元 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
設定したばかりの DependencyObjectType データ メンバーに対して適切なコンテキスト ポインターが確立されていることを確認します。 (継承元 Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) の DependencyObject 実装をオーバーライドして、Freezable型の依存関係プロパティの変化に応じて Changed ハンドラーも呼び出します。 (継承元 Freezable) |
ReadLocalValue(DependencyProperty) |
依存関係プロパティが存在する場合は、そのローカル値を返します。 (継承元 DependencyObject) |
ReadPreamble() |
Freezable が有効なスレッドからアクセスされていることを確認します。 Freezable の継承子は、依存関係プロパティではないデータ メンバーを読み取る API の先頭でこのメソッドを呼び出す必要があります。 (継承元 Freezable) |
SetCurrentValue(DependencyProperty, Object) |
値ソースを変更せずに依存関係プロパティの値を設定します。 (継承元 DependencyObject) |
SetValue(DependencyProperty, Object) |
依存関係プロパティ識別子で指定された依存関係プロパティのローカル値を設定します。 (継承元 DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
依存関係プロパティの DependencyPropertyKey 識別子で指定された、読み取り専用の依存関係プロパティのローカル値を設定します。 (継承元 DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
シリアル化プロセスが指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。 (継承元 DependencyObject) |
ToString() |
Model3D の文字列形式を作成します。 (継承元 Model3D) |
ToString(IFormatProvider) |
Model3D の文字列形式を作成します。 (継承元 Model3D) |
VerifyAccess() |
呼び出し元のスレッドがこの DispatcherObjectにアクセスすることを強制します。 (継承元 DispatcherObject) |
WritePostscript() |
Freezable の Changed イベントを発生させ、その OnChanged() メソッドを呼び出します。 Freezable から派生するクラスは、依存関係プロパティとして格納されていないクラス メンバーを変更する API の末尾でこのメソッドを呼び出す必要があります。 (継承元 Freezable) |
WritePreamble() |
Freezable が固定されていないこと、および有効なスレッド コンテキストからアクセスされていることを確認します。 Freezable 継承子は、依存関係プロパティではないデータ メンバーに書き込む API の先頭でこのメソッドを呼び出す必要があります。 (継承元 Freezable) |
イベント
Changed |
Freezable またはそれに含まれるオブジェクトが変更されたときに発生します。 (継承元 Freezable) |
明示的なインターフェイスの実装
IFormattable.ToString(String, IFormatProvider) |
指定した形式を使用して、現在のインスタンスの値を書式設定します。 (継承元 Model3D) |
適用対象
.NET