guPosLight.htm
3.27 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<A NAME="_Toc366998669"></A><B>guPosLight(3P) <BR>
</B>
<P>
<B>関数名<BR>
</B>
<P>
guPosLight, guPosLightHilite
<P>
→ ポジショナルライトの擬似表現<BR>
<P>
<B>構文<BR>
</B>
<P>
#include <gu.h><BR>
<P>
void guPosLight(PositionalLight *pl,
<P>
Light *l,
<P>
float xOb, float yOb, float zOb);<BR>
<P>
void guPosLightHilite(PositionalLight *pl1, PositionalLight *pl2,
<P>
Light *l1, Light *l2,
<P>
LookAt *l, Hilite *h,
<P>
float xEye, float yEye, float zEye,
<P>
float xOb, float yOb, float zOb,
<P>
float xUp, float yUp, float zUp,
<P>
int twidth, int theight);<BR>
<P>
typedef struct {
<P>
float col[3];
<P>
float pos[3];
<P>
float a1, a2;
<P>
} PositionalLight<BR>
<P>
<B>パラメータ<BR>
</B>
<P>
<B>pl,pl1,pl1</B>
<P>
ポジショナルライト構造体(ユーザが定義するポジショナルライトのカラー、位置、減衰率をセットする)のポインタ
<P>
<B>l,l1,l2</B>
<P>
関数から返されるライト構造体のポインタ
<P>
<B>xOB, yOB, zOB</B>
<P>
ライティングされるオブジェクトの中心座標(絶対座標)
<P>
<B>l</B>
<P>
関数から返されるLookAt構造体のポインタ
<P>
<A HREF="guLookAtHilite.htm">guLookAtHilite</A>(3P)を参照して下さい
<P>
<B>h</B>
<P>
関数から返されるHilite構造体のポインタ
<P>
<A HREF="guLookAtHilite.htm">guLookAtHilite</A>(3P)を参照して下さい
<P>
<B>xEye, yEye, zEye</B>
<P>
アイポジション(<A HREF="guLookAt.htm">guLookAt</A>(3P)で使われているものと同じ)
<P>
<B>xUp, yUp, zUp</B>
<P>
<FONT FACE="MS 明朝">上方向ベクトル</FONT>(<A HREF="guLookAt.htm">guLookAt</A>(3P)で使われているものと同じ)
<P>
<B>twidth, theight</B>
<P>
スペキュラーハイライトをレンダリングするために使われるテクスチャの幅と高さ
<P>
<B>col</B>
<P>
ポジショナルライトのカラー(とインテンシティ)
<P>
<B>Pos</B>
<P>
ポジショナルライトの位置(絶対座標)
<P>
<B>a1, a2</B>
<P>
減衰率
<P>
オブジェクト上のライトのインテンシティは次の式により決まる
<P>
col/(a1*dist + a2)<BR>
<P>
<B>説明<BR>
</B>
<P>
<B>guPosLight</B>と<B>guPosLightHilite</B>はポジショナルライト構造体(ユーザがパラメータをセットしたもの)を受け取って、ライト構造体を返します。ライトの方向とインテンシティは、ライトとライティングされるオブジェクトの位置関係(距離と方向)により決まります。これらの関数は、減衰を伴うポジショナルライトを擬似的に表現するのに使用します。ライティングされた小さなオブジェクト(特に動きのあるオブジェクト)を出す場合はうまく機能しますが、大きなオブジェクト(例えば地形、壁、大地など)を出す場合はうまく機能しません。複数のオブジェクトを動かす場合には、これらの関数を動かすオブジェクト毎にコールし、それぞれのオブジェクト毎のライト構造体を使うようにして下さい。
<BR>
<P>
<B>guPosLightHilite</B>は2つのポジショナルライトのライト構造体とスペキュラーハイライトレンダリングのためのhilite構造体、LookAt構造体を返します。
<BR>
<P>
<B>guPosLight</B>は1つのポジショナルライトのライト構造体を返します。スペキュラーハイライトのための値は計算しません。
<BR>
<P>
<B>参照<BR>
</B>
<P>
<A HREF="../gsp/gSPSetLights.htm">gSPSetLights</A>(3P), <A HREF="../gdsp/gdSPDefLights.htm" >gdSPDefLights</A>(3P),
<A HREF="../gsp/gSPNumLights.htm">gSPNumLights</A>(3P), <A HREF="../gsp/gSPLightColor.htm">gSPLightColor</A>(3P)
<BR>
</BODY>
</HTML>