Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.



This topic is 5977 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

is there any tutorial how to use the nv_evaluators extension? i didnt find good documentation on it. if not could someone post some code how to render a basic textured quad with it? cody

Share this post

Link to post
Share on other sites
Try at nVidia developer site http://developer.nvidia.com
Look for demos, and you will find source to work with
nv_evaluators extension.

Share this post

Link to post
Share on other sites
thx, it is working now, but i dont really know what the parameters to some functions mean exactly.

void (PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);

ustride? stride between two vectors?
vstride? size of one row?
uorder? number of columns?
vorder? number of rows?
what does packed mean?

void (* PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);

how many values must be in params?
as many as columns?
from the nvidia demo:
glMapParameterfvNV(patch_type, GL_MAP_TESSELLATION_NV, tess);
tess has 4 floats there, but also there are 4 rows and 4 columns.

void (* PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);

what does mode do? it is GL_FILL in the nvidia demo, but its not the same as the paramter in glPolygonMode

i have read the nvidia presentations on high order surfaces but these explanations are not exact enough.

Share this post

Link to post
Share on other sites
i know youve read this but its all there

type is either FLOAT or DOUBLE. ustride and vstride are the numbers
of basic machine units (typically unsigned bytes) between control
points in the u and v directions. uorder and vorder have the same
meaning they do in the Map2{fd} command. The error INVALID_VALUE
is generated if either uorder or vorder is less than one or greater
than MAX_EVAL_ORDER. The error INVALID_OPERATION is generated if
target is EVAL_TRIANGULAR_2D_NV and uorder is not equal to vorder.
points is a pointer to an array of control points. If target is
EVAL_2D_NV, there are uorder*vorder control points in the array,
and if it is EVAL_TRIANGULAR_2D_NV, there are uorder*(uorder+1)/2
points in the array. If packed is FALSE, control point i,j is
(ustride)i + (vstride)j
basic machine units from points. If target is EVAL_2D_NV, i ranges
from 0 to uorder-1, and j ranges from 0 to vorder-1. If target is
EVAL_TRIANGULAR_2D_NV, i and j range from 0 to uorder-1, and i+j
must be less than or equal to uorder-1.
If packed is TRUE and target is EVAL_2D_NV, control point i,j is
(ustride)(j*uorder + i)


Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!