HP Workstation zx2000 OpenGL 1.1 Reference for HP-UX 11.x - Page 275

Equation 11-1, Equation 11-2, Equation 11-3, Equation 11-4

Page 275 highlights

M glMap1 Equation 11-1 All polynomial or rational polynomial splines of any degree (up to the maximum degree supported by the GL implementation) can be described using evaluators. These include almost all splines used in compute graphics: B-splines, Bezier curves, Hermite splines, and so on. Evaluators define curves based on Bernstein polynomials. Define p(û) as n ∑ p(uˆ ) = Bin(uˆ )Ri i=0 where Ri is a control point and Bin(û ) is the ith Bernstein polynomial of degree n (order = n + 1): Equation 11-2 Bin(uˆ ) =   n i uˆ i( 1 - uˆ ) n - i Recall that: Equation 11-3 00 ≡ 1and  n  0 ≡ 1 glMap1 is used to define the basis and to specify what kind of values are produced. Once defined, a map can be enabled and disabled by calling glEnable and glDisable with the map name, one of the nine predefined values for target described below. glEvalCoord1 evaluates the one-dimensional maps that are enabled. When glEvalCoord1 presents a value u, the Bernstein functions are evaluated using û, where Equation 11-4 uˆ = --u----------u----1--u2 - u1 target is a symbolic constant that indicates what kind of control points are provided in points, and what output is generated when the map is evaluated. It can assume one of nine predefined values: GL_MAP1_VERTEX_3 Each control point is three floating-point values representing x, y, and z. Internal glVertex3 commands are generated when the map is evaluated. GL_MAP1_VERTEX_4 Each control point is four floating-point values representing x, y, z, and w. Internal glVertex4 commands are generated when the map is evaluated. GL_MAP1_INDEX Each control point is a single floating-point value representing a color index. Internal glIndex commands are generated when the map is evaluated but the current index is not updated with the value of these glIndex commands. GL_MAP1_COLOR_4 Chapter 11 275

  • 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
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486

M
glMap1
Chapter 11
275
All polynomial or rational polynomial splines of any degree (up to the maximum degree
supported by the GL implementation) can be described using evaluators. These include
almost all splines used in compute graphics: B-splines, Bezier curves, Hermite splines,
and so on.
Evaluators define curves based on Bernstein polynomials. Define p(
û
) as
Equation 11-1
where R
i
is a control point and Bin(û ) is the
i
th Bernstein polynomial of degree
n
(order
= n + 1):
Equation 11-2
Recall that:
Equation 11-3
glMap1 is used to define the basis and to specify what kind of values are produced. Once
defined, a map can be enabled and disabled by calling glEnable and glDisable with the
map name, one of the nine predefined values for
target
described below. glEvalCoord1
evaluates the one-dimensional maps that are enabled. When glEvalCoord1 presents a
value
u
, the Bernstein functions are evaluated using
û
, where
Equation 11-4
target
is a symbolic constant that indicates what kind of control points are provided in
points, and what output is generated when the map is evaluated. It can assume one of
nine predefined values:
GL_MAP1_VERTEX_3
Each control point is three floating-point values representing
x, y,
and
z
. Internal
glVertex3 commands are generated when the map is evaluated.
GL_MAP1_VERTEX_4
Each control point is four floating-point values representing
x, y, z
, and
w
. Internal
glVertex4 commands are generated when the map is evaluated.
GL_MAP1_INDEX
Each control point is a single floating-point value representing a color index. Internal
glIndex commands are generated when the map is evaluated but the current index is not
updated with the value of these glIndex commands.
GL_MAP1_COLOR_4
pu
ˆ
(29
B
i
n
u
ˆ
(29
R
i
i
0
=
n
=
B
i
n
u
ˆ
(29
n
i
u
ˆ
i
1
u
ˆ
(
29
n
i
=
0
0
1
and
n
0
1
u
ˆ
u
u
1
u
2
u
1
------------------
=