2 |
<html> |
<html> |
3 |
<head> |
<head> |
4 |
<title>Irregular shape profiles</title> |
<title>Irregular shape profiles</title> |
5 |
|
|
6 |
<meta http-equiv="content-type" |
<meta http-equiv="content-type" |
7 |
content="text/html; charset=ISO-8859-1"> |
content="text/html; charset=ISO-8859-1"> |
8 |
</head> |
</head> |
9 |
<body> |
<body> |
10 |
|
|
11 |
<table cellpadding="2" cellspacing="2" border="1" width="100%"> |
<table cellpadding="2" cellspacing="2" border="1" width="100%"> |
12 |
<tbody> |
<tbody> |
13 |
<tr> |
<tr> |
14 |
<td valign="top">Profile<br> |
<td valign="top">Profile<br> |
15 |
</td> |
</td> |
16 |
<td valign="top">Required extensions<br> |
<td valign="top">Required extensions<br> |
17 |
</td> |
</td> |
18 |
<td valign="top">displacement resolution (bits)<br> |
<td valign="top">displacement resolution (bits)<br> |
19 |
</td> |
</td> |
20 |
<td valign="top">texture units<br> |
<td valign="top">texture units<br> |
21 |
</td> |
</td> |
22 |
<td valign="top">register combiners<br> |
<td valign="top">register combiners<br> |
23 |
</td> |
</td> |
24 |
<td valign="top">inner edge textures<br> |
<td valign="top">inner edge textures<br> |
25 |
</td> |
</td> |
26 |
<td valign="top">outer edge textures<br> |
<td valign="top">outer edge textures<br> |
27 |
</td> |
</td> |
28 |
<td valign="top">texture bits<br> |
<td valign="top">texture bits<br> |
29 |
</td> |
</td> |
30 |
<td valign="top">stored angles (--> works for only one ripple |
<td valign="top">stored angles (--> works for only one ripple |
31 |
amplitude/period ratio)<br> |
amplitude/period ratio)<br> |
32 |
</td> |
</td> |
33 |
<td valign="top">Draw color/texture w/o stencil<br> |
<td valign="top">Draw color/texture w/o stencil<br> |
34 |
</td> |
</td> |
35 |
<td valign="top">1-pass border + inside color/texture w/o stencil<br> |
<td valign="top">1-pass border + inside color/texture w/o stencil<br> |
36 |
</td> |
</td> |
37 |
<td valign="top">Minification<br> |
<td valign="top">Minification<br> |
38 |
</td> |
</td> |
39 |
<td valign="top">Magnification<br> |
<td valign="top">Magnification<br> |
40 |
</td> |
</td> |
41 |
<td valign="top">sqrt(scale)-border width option (currently only |
<td valign="top">sqrt(scale)-border width option (currently only |
42 |
implemented for mipmaps)<br> |
implemented for mipmaps)<br> |
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td valign="top">NV_PROG (NV30)<br> |
|
|
</td> |
|
|
<td valign="top">GL_NV_fragment_program<br> |
|
|
</td> |
|
|
<td valign="top">16 (can also use float)<br> |
|
|
</td> |
|
|
<td valign="top">1 (w/ multiple accesses)<br> |
|
|
</td> |
|
|
<td valign="top"><br> |
|
|
</td> |
|
|
<td valign="top">1xHILO<br> |
|
|
</td> |
|
|
<td valign="top">-<br> |
|
|
</td> |
|
|
<td valign="top">32<br> |
|
|
</td> |
|
|
<td valign="top"><br> |
|
|
</td> |
|
|
<td valign="top">Yes<br> |
|
|
</td> |
|
|
<td valign="top">Yes<br> |
|
|
</td> |
|
|
<td valign="top">Works the same for any scale<br> |
|
|
</td> |
|
|
<td valign="top">Works the same for any scale<br> |
|
|
</td> |
|
|
<td valign="top">Yes (but thick border may require too many accesses)<br> |
|
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td valign="top">NV_SHAD (NV20)<br> |
|
43 |
</td> |
</td> |
44 |
<td valign="top">GL_NV_texture_shader<br> |
</tr> |
45 |
|
<tr> |
46 |
|
<td valign="top">NV_PROG (NV30)<br> |
47 |
</td> |
</td> |
48 |
<td valign="top">16<br> |
<td valign="top">GL_NV_fragment_program<br> |
49 |
</td> |
</td> |
50 |
<td valign="top">3 (2 w/ NV25)<br> |
<td valign="top">16 (can also use float)<br> |
51 |
|
</td> |
52 |
|
<td valign="top">1 (w/ multiple accesses)<br> |
53 |
</td> |
</td> |
54 |
<td valign="top"><br> |
<td valign="top"><br> |
55 |
</td> |
</td> |
56 |
<td valign="top">1xHILO (+ 1D-ALPHA edge)<br> |
<td valign="top">1xHILO<br> |
57 |
</td> |
</td> |
58 |
<td valign="top">-<br> |
<td valign="top">-<br> |
59 |
</td> |
</td> |
63 |
</td> |
</td> |
64 |
<td valign="top">Yes<br> |
<td valign="top">Yes<br> |
65 |
</td> |
</td> |
|
<td valign="top">Yes (w/ more combiners)<br> |
|
|
</td> |
|
|
<td valign="top">1D-texture mipmap<br> |
|
|
</td> |
|
|
<td valign="top">Up to 1D texture size<br> |
|
|
</td> |
|
|
<td valign="top">No (thick border looks bad)<br> |
|
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td valign="top">NV_COMB_MULTITEX (NV20)<br> |
|
|
</td> |
|
|
<td valign="top">GL_NV_register_combiners<br> |
|
|
</td> |
|
|
<td valign="top">8<br> |
|
|
</td> |
|
|
<td valign="top">3<br> |
|
|
</td> |
|
|
<td valign="top">4<br> |
|
|
</td> |
|
|
<td valign="top">2xINTENSITY<br> |
|
|
</td> |
|
|
<td valign="top">-<br> |
|
|
</td> |
|
|
<td valign="top">16<br> |
|
|
</td> |
|
|
<td valign="top"><br> |
|
|
</td> |
|
66 |
<td valign="top">Yes<br> |
<td valign="top">Yes<br> |
67 |
</td> |
</td> |
68 |
<td valign="top">Yes (w/ more combiners)<br> |
<td valign="top">Works the same for any scale<br> |
69 |
</td> |
</td> |
70 |
<td valign="top">Works the same for any scale<br> |
<td valign="top">Works the same for any scale<br> |
71 |
</td> |
</td> |
72 |
<td valign="top">Up to displacement resolution<br> |
<td valign="top">Yes (but thick border may require too many accesses)<br> |
73 |
</td> |
</td> |
|
<td valign="top">Possible, but thick border may look bad with only |
|
|
3 accesses<br> |
|
|
</td> |
|
74 |
</tr> |
</tr> |
75 |
<tr> |
<tr> |
76 |
<td valign="top">NV_COMB_DOT3 (NV10)<br> |
<td valign="top">NV_SHAD (NV20)<br> |
77 |
</td> |
</td> |
78 |
<td valign="top">GL_NV_register_combiners<br> |
<td valign="top">GL_NV_texture_shader<br> |
79 |
</td> |
</td> |
80 |
<td valign="top">7-8<br> |
<td valign="top">16<br> |
81 |
</td> |
</td> |
82 |
<td valign="top">1<br> |
<td valign="top">3 (2 w/ NV25)<br> |
83 |
</td> |
</td> |
84 |
<td valign="top">2<br> |
<td valign="top"><br> |
85 |
</td> |
</td> |
86 |
<td valign="top">(alpha of outer)<br> |
<td valign="top">1xHILO (+ 1D-ALPHA edge)<br> |
87 |
</td> |
</td> |
88 |
<td valign="top">2xRGBA<br> |
<td valign="top">-<br> |
89 |
</td> |
</td> |
90 |
<td valign="top">64<br> |
<td valign="top">32<br> |
91 |
</td> |
</td> |
92 |
<td valign="top">3<br> |
<td valign="top"><br> |
93 |
|
</td> |
94 |
|
<td valign="top">Yes<br> |
95 |
|
</td> |
96 |
|
<td valign="top">Yes (w/ more combiners)<br> |
97 |
|
</td> |
98 |
|
<td valign="top">1D-texture mipmap<br> |
99 |
|
</td> |
100 |
|
<td valign="top">Up to 1D texture size<br> |
101 |
|
</td> |
102 |
|
<td valign="top">No (thick border looks bad)<br> |
103 |
|
</td> |
104 |
|
</tr> |
105 |
|
<tr> |
106 |
|
<td valign="top">NV_COMB_MULTITEX (NV20)<br> |
107 |
|
</td> |
108 |
|
<td valign="top">GL_NV_register_combiners<br> |
109 |
|
</td> |
110 |
|
<td valign="top">8<br> |
111 |
|
</td> |
112 |
|
<td valign="top">3<br> |
113 |
|
</td> |
114 |
|
<td valign="top">4<br> |
115 |
|
</td> |
116 |
|
<td valign="top">2xINTENSITY<br> |
117 |
|
</td> |
118 |
|
<td valign="top">-<br> |
119 |
|
</td> |
120 |
|
<td valign="top">16<br> |
121 |
|
</td> |
122 |
|
<td valign="top"><br> |
123 |
|
</td> |
124 |
|
<td valign="top">Yes<br> |
125 |
|
</td> |
126 |
|
<td valign="top">Yes (w/ more combiners)<br> |
127 |
|
</td> |
128 |
|
<td valign="top">Works the same for any scale<br> |
129 |
|
</td> |
130 |
|
<td valign="top">Up to displacement resolution<br> |
131 |
|
</td> |
132 |
|
<td valign="top">Possible, but thick border may look bad with only |
133 |
|
3 accesses<br> |
134 |
</td> |
</td> |
135 |
|
</tr> |
136 |
|
<tr> |
137 |
|
<td valign="top">NV_COMB_DOT3 (NV10)<br> |
138 |
|
</td> |
139 |
|
<td valign="top">GL_NV_register_combiners<br> |
140 |
|
</td> |
141 |
|
<td valign="top">7-8<br> |
142 |
|
</td> |
143 |
|
<td valign="top">1<br> |
144 |
|
</td> |
145 |
|
<td valign="top">2<br> |
146 |
|
</td> |
147 |
|
<td valign="top">(alpha of outer)<br> |
148 |
|
</td> |
149 |
|
<td valign="top">2xRGBA<br> |
150 |
|
</td> |
151 |
|
<td valign="top">64<br> |
152 |
|
</td> |
153 |
|
<td valign="top">3<br> |
154 |
|
</td> |
155 |
|
<td valign="top">Yes<br> |
156 |
|
</td> |
157 |
|
<td valign="top">(w/ more combiners)<br> |
158 |
|
</td> |
159 |
|
<td valign="top">Outer texture mipmap<br> |
160 |
|
</td> |
161 |
|
<td valign="top">Can interpolate outer edge towards inner edge |
162 |
|
(up to displacement resolution)<br> |
163 |
|
</td> |
164 |
<td valign="top">Yes<br> |
<td valign="top">Yes<br> |
165 |
</td> |
</td> |
166 |
<td valign="top">(w/ more combiners)<br> |
</tr> |
167 |
</td> |
<tr> |
168 |
<td valign="top">Outer texture mipmap<br> |
<td valign="top">NV_COMB_DOT4 (NV10)<br> |
169 |
</td> |
</td> |
170 |
<td valign="top">Can interpolate outer edge towards inner edge (up |
<td valign="top">GL_NV_register_combiners<br> |
171 |
to displacement resolution)<br> |
</td> |
172 |
</td> |
<td valign="top">7-8<br> |
173 |
<td valign="top">Yes<br> |
</td> |
174 |
</td> |
<td valign="top">1<br> |
175 |
</tr> |
</td> |
176 |
<tr> |
<td valign="top">2<br> |
177 |
<td valign="top">NV_COMB_DOT4 (NV10)<br> |
</td> |
178 |
</td> |
<td valign="top">2xINTENSITY<br> |
179 |
<td valign="top">GL_NV_register_combiners<br> |
</td> |
180 |
</td> |
<td valign="top">2xRGBA<br> |
181 |
<td valign="top">7-8<br> |
</td> |
182 |
</td> |
<td valign="top">80<br> |
183 |
<td valign="top">1<br> |
</td> |
184 |
</td> |
<td valign="top">4<br> |
185 |
<td valign="top">2<br> |
</td> |
186 |
</td> |
<td valign="top">Yes<br> |
187 |
<td valign="top">2xINTENSITY<br> |
</td> |
188 |
</td> |
<td valign="top">(w/ more combiners)<br> |
189 |
<td valign="top">2xRGBA<br> |
</td> |
190 |
</td> |
<td valign="top">Outer texture mipmap<br> |
191 |
<td valign="top">80<br> |
</td> |
192 |
</td> |
<td valign="top">Edge width increases<br> |
193 |
<td valign="top">4<br> |
</td> |
|
</td> |
|
194 |
<td valign="top">Yes<br> |
<td valign="top">Yes<br> |
195 |
</td> |
</td> |
196 |
<td valign="top">(w/ more combiners)<br> |
</tr> |
197 |
</td> |
<tr> |
198 |
<td valign="top">Outer texture mipmap<br> |
<td valign="top">DOT3<br> |
199 |
</td> |
</td> |
200 |
<td valign="top">Edge width increases<br> |
<td valign="top">GL_EXT_texture_env_dot3 <br> |
201 |
</td> |
</td> |
202 |
<td valign="top">Yes<br> |
<td valign="top">5-6<br> |
203 |
</td> |
</td> |
204 |
</tr> |
<td valign="top">1<br> |
205 |
<tr> |
</td> |
206 |
<td valign="top">DOT3<br> |
<td valign="top"><br> |
207 |
</td> |
</td> |
208 |
<td valign="top">GL_EXT_texture_env_dot3 <br> |
<td valign="top">(alpha of outer)<br> |
209 |
</td> |
</td> |
210 |
<td valign="top">5-6<br> |
<td valign="top">2xRGBA<br> |
211 |
</td> |
</td> |
212 |
<td valign="top">1<br> |
<td valign="top">64<br> |
213 |
</td> |
</td> |
214 |
<td valign="top"><br> |
<td valign="top">3<br> |
215 |
</td> |
</td> |
216 |
<td valign="top">(alpha of outer)<br> |
<td valign="top">(black w/ blend)<br> |
217 |
</td> |
</td> |
218 |
<td valign="top">2xRGBA<br> |
<td valign="top">No<br> |
219 |
</td> |
</td> |
220 |
<td valign="top">64<br> |
<td valign="top">Outer texture mipmap<br> |
221 |
</td> |
</td> |
222 |
<td valign="top">3<br> |
<td valign="top">Edge width increases<br> |
223 |
</td> |
</td> |
224 |
<td valign="top">(black w/ blend)<br> |
<td valign="top">Yes<br> |
|
</td> |
|
|
<td valign="top">No<br> |
|
|
</td> |
|
|
<td valign="top">Outer texture mipmap<br> |
|
225 |
</td> |
</td> |
226 |
<td valign="top">Edge width increases<br> |
</tr> |
227 |
</td> |
<tr> |
228 |
<td valign="top">Yes<br> |
<td valign="top">STD_MULTIPASS (perturbed border)<br> |
229 |
</td> |
</td> |
230 |
</tr> |
<td valign="top">GL_EXT_texture_env_add<br> |
231 |
<tr> |
</td> |
232 |
<td valign="top">STD (multi pass perturbed border)<br> |
<td valign="top">8 (4 with G400)<br> |
233 |
|
</td> |
234 |
|
<td valign="top">1<br> |
235 |
|
</td> |
236 |
|
<td valign="top"><br> |
237 |
|
</td> |
238 |
|
<td valign="top">2xINTENSITY<br> |
239 |
|
</td> |
240 |
|
<td valign="top">-<br> |
241 |
|
</td> |
242 |
|
<td valign="top">16<br> |
243 |
|
</td> |
244 |
|
<td valign="top"><br> |
245 |
|
</td> |
246 |
|
<td valign="top">(black w/ blend)<br> |
247 |
|
</td> |
248 |
|
<td valign="top">No<br> |
249 |
|
</td> |
250 |
|
<td valign="top">Works the same for any scale<br> |
251 |
|
</td> |
252 |
|
<td valign="top">Works the same for any scale<br> |
253 |
|
</td> |
254 |
|
<td valign="top">Possible, but large perturbation looks bad<br> |
255 |
|
</td> |
256 |
|
</tr> |
257 |
|
<tr> |
258 |
|
<td valign="top">STD_CONSTD (constant displacement border)<br> |
259 |
</td> |
</td> |
260 |
<td valign="top">GL_EXT_texture_env_add<br> |
<td valign="top">GL_EXT_texture_env_add<br> |
261 |
</td> |
</td> |
279 |
</td> |
</td> |
280 |
<td valign="top">Works the same for any scale<br> |
<td valign="top">Works the same for any scale<br> |
281 |
</td> |
</td> |
282 |
<td valign="top">Works the same for any scale<br> |
<td valign="top">Up to displacement resolution<br> |
283 |
|
</td> |
284 |
|
<td valign="top">Yes<br> |
285 |
</td> |
</td> |
|
<td valign="top">Possible, but large perturbation looks bad<br> |
|
|
</td> |
|
286 |
</tr> |
</tr> |
287 |
<tr> |
<tr> |
288 |
<td valign="top">STD (constant displacement border; not currently |
<td valign="top">STD_4<br> |
289 |
implemented)<br> |
</td> |
290 |
</td> |
<td valign="top">GL_EXT_texture_env_add<br> |
291 |
<td valign="top">GL_EXT_texture_env_add<br> |
</td> |
292 |
</td> |
<td valign="top">8 (4 with G400)<br> |
293 |
<td valign="top">8 (4 with G400)<br> |
</td> |
294 |
</td> |
<td valign="top">1<br> |
295 |
<td valign="top">1<br> |
</td> |
296 |
</td> |
<td valign="top"><br> |
297 |
<td valign="top"><br> |
</td> |
298 |
</td> |
<td valign="top">2xINTENSITY<br> |
299 |
<td valign="top">2xINTENSITY<br> |
</td> |
300 |
</td> |
<td valign="top">2x4xRGBA<br> |
301 |
<td valign="top">-<br> |
</td> |
302 |
</td> |
<td valign="top">80<br> |
303 |
<td valign="top">16<br> |
</td> |
304 |
</td> |
<td valign="top">4<br> |
305 |
<td valign="top"><br> |
</td> |
306 |
</td> |
<td valign="top">(black w/ blend)<br> |
307 |
<td valign="top">(black w/ blend)<br> |
</td> |
308 |
</td> |
<td valign="top">No<br> |
309 |
<td valign="top">No<br> |
</td> |
310 |
</td> |
<td valign="top">Outer texture mipmap<br> |
311 |
<td valign="top">Works the same for any scale<br> |
</td> |
312 |
</td> |
<td valign="top">Edge width increases<br> |
313 |
<td valign="top">Up to displacement resolution<br> |
</td> |
314 |
</td> |
<td valign="top">Yes<br> |
|
<td valign="top">Yes<br> |
|
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td valign="top">STD_4<br> |
|
|
</td> |
|
|
<td valign="top">GL_EXT_texture_env_add<br> |
|
|
</td> |
|
|
<td valign="top">8 (4 with G400)<br> |
|
|
</td> |
|
|
<td valign="top">1<br> |
|
|
</td> |
|
|
<td valign="top"><br> |
|
|
</td> |
|
|
<td valign="top">2xINTENSITY<br> |
|
|
</td> |
|
|
<td valign="top">2x4xRGBA<br> |
|
|
</td> |
|
|
<td valign="top">80<br> |
|
|
</td> |
|
|
<td valign="top">4<br> |
|
|
</td> |
|
|
<td valign="top">(black w/ blend)<br> |
|
|
</td> |
|
|
<td valign="top">No<br> |
|
|
</td> |
|
|
<td valign="top">Outer texture mipmap<br> |
|
|
</td> |
|
|
<td valign="top">Edge width increases<br> |
|
315 |
</td> |
</td> |
316 |
<td valign="top">Yes<br> |
</tr> |
317 |
</td> |
|
318 |
</tr> |
</tbody> |
|
|
|
|
</tbody> |
|
319 |
</table> |
</table> |
320 |
<br> |
<br> |
321 |
|
<br> |
322 |
<br> |
<br> |
323 |
<br> |
<br> |
324 |
<br> |
<br> |