Blender  V3.3
Classes | Typedefs | Functions
kernel/geom/patch.h File Reference
#include "util/color.h"

Go to the source code of this file.

Classes

struct  PatchHandle
 

Typedefs

typedef CCL_NAMESPACE_BEGIN struct PatchHandle PatchHandle
 

Functions

ccl_device_inline int patch_map_resolve_quadrant (float median, ccl_private float *u, ccl_private float *v)
 
ccl_device_inline PatchHandle patch_map_find_patch (KernelGlobals kg, int object, int patch, float u, float v)
 
ccl_device_inline void patch_eval_bspline_weights (float t, ccl_private float *point, ccl_private float *deriv)
 
ccl_device_inline void patch_eval_adjust_boundary_weights (uint bits, ccl_private float *s, ccl_private float *t)
 
ccl_device_inline int patch_eval_depth (uint patch_bits)
 
ccl_device_inline float patch_eval_param_fraction (uint patch_bits)
 
ccl_device_inline void patch_eval_normalize_coords (uint patch_bits, ccl_private float *u, ccl_private float *v)
 
ccl_device_inline int patch_eval_indices (KernelGlobals kg, ccl_private const PatchHandle *handle, int channel, int indices[PATCH_MAX_CONTROL_VERTS])
 
ccl_device_inline void patch_eval_basis (KernelGlobals kg, ccl_private const PatchHandle *handle, float u, float v, float weights[PATCH_MAX_CONTROL_VERTS], float weights_du[PATCH_MAX_CONTROL_VERTS], float weights_dv[PATCH_MAX_CONTROL_VERTS])
 
ccl_device_inline int patch_eval_control_verts (KernelGlobals kg, int object, int patch, float u, float v, int channel, int indices[PATCH_MAX_CONTROL_VERTS], float weights[PATCH_MAX_CONTROL_VERTS], float weights_du[PATCH_MAX_CONTROL_VERTS], float weights_dv[PATCH_MAX_CONTROL_VERTS])
 
ccl_device float patch_eval_float (KernelGlobals kg, ccl_private const ShaderData *sd, int offset, int patch, float u, float v, int channel, ccl_private float *du, ccl_private float *dv)
 
ccl_device float2 patch_eval_float2 (KernelGlobals kg, ccl_private const ShaderData *sd, int offset, int patch, float u, float v, int channel, ccl_private float2 *du, ccl_private float2 *dv)
 
ccl_device float3 patch_eval_float3 (KernelGlobals kg, ccl_private const ShaderData *sd, int offset, int patch, float u, float v, int channel, ccl_private float3 *du, ccl_private float3 *dv)
 
ccl_device float4 patch_eval_float4 (KernelGlobals kg, ccl_private const ShaderData *sd, int offset, int patch, float u, float v, int channel, ccl_private float4 *du, ccl_private float4 *dv)
 
ccl_device float4 patch_eval_uchar4 (KernelGlobals kg, ccl_private const ShaderData *sd, int offset, int patch, float u, float v, int channel, ccl_private float4 *du, ccl_private float4 *dv)
 

Detailed Description

Based on code from OpenSubdiv.

Definition in file kernel/geom/patch.h.

Typedef Documentation

◆ PatchHandle

Function Documentation

◆ patch_eval_adjust_boundary_weights()

ccl_device_inline void patch_eval_adjust_boundary_weights ( uint  bits,
ccl_private float s,
ccl_private float t 
)

Definition at line 118 of file kernel/geom/patch.h.

References t.

Referenced by patch_eval_basis().

◆ patch_eval_basis()

ccl_device_inline void patch_eval_basis ( KernelGlobals  kg,
ccl_private const PatchHandle handle,
float  u,
float  v,
float  weights[PATCH_MAX_CONTROL_VERTS],
float  weights_du[PATCH_MAX_CONTROL_VERTS],
float  weights_dv[PATCH_MAX_CONTROL_VERTS] 
)

◆ patch_eval_bspline_weights()

ccl_device_inline void patch_eval_bspline_weights ( float  t,
ccl_private float point,
ccl_private float deriv 
)

Definition at line 96 of file kernel/geom/patch.h.

References point, and t.

Referenced by patch_eval_basis().

◆ patch_eval_control_verts()

ccl_device_inline int patch_eval_control_verts ( KernelGlobals  kg,
int  object,
int  patch,
float  u,
float  v,
int  channel,
int  indices[PATCH_MAX_CONTROL_VERTS],
float  weights[PATCH_MAX_CONTROL_VERTS],
float  weights_du[PATCH_MAX_CONTROL_VERTS],
float  weights_dv[PATCH_MAX_CONTROL_VERTS] 
)

◆ patch_eval_depth()

ccl_device_inline int patch_eval_depth ( uint  patch_bits)

Definition at line 149 of file kernel/geom/patch.h.

Referenced by patch_eval_basis(), and patch_eval_param_fraction().

◆ patch_eval_float()

ccl_device float patch_eval_float ( KernelGlobals  kg,
ccl_private const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
ccl_private float du,
ccl_private float dv 
)

◆ patch_eval_float2()

ccl_device float2 patch_eval_float2 ( KernelGlobals  kg,
ccl_private const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
ccl_private float2 du,
ccl_private float2 dv 
)

◆ patch_eval_float3()

ccl_device float3 patch_eval_float3 ( KernelGlobals  kg,
ccl_private const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
ccl_private float3 du,
ccl_private float3 dv 
)

◆ patch_eval_float4()

ccl_device float4 patch_eval_float4 ( KernelGlobals  kg,
ccl_private const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
ccl_private float4 du,
ccl_private float4 dv 
)

◆ patch_eval_indices()

ccl_device_inline int patch_eval_indices ( KernelGlobals  kg,
ccl_private const PatchHandle handle,
int  channel,
int  indices[PATCH_MAX_CONTROL_VERTS] 
)

Definition at line 187 of file kernel/geom/patch.h.

References indices, and kernel_data_fetch.

Referenced by patch_eval_control_verts().

◆ patch_eval_normalize_coords()

ccl_device_inline void patch_eval_normalize_coords ( uint  patch_bits,
ccl_private float u,
ccl_private float v 
)

Definition at line 167 of file kernel/geom/patch.h.

References float(), CCL_NAMESPACE_BEGIN::frac(), patch_eval_param_fraction(), and v.

Referenced by patch_eval_basis().

◆ patch_eval_param_fraction()

ccl_device_inline float patch_eval_param_fraction ( uint  patch_bits)

Definition at line 154 of file kernel/geom/patch.h.

References float(), and patch_eval_depth().

Referenced by patch_eval_normalize_coords().

◆ patch_eval_uchar4()

ccl_device float4 patch_eval_uchar4 ( KernelGlobals  kg,
ccl_private const ShaderData sd,
int  offset,
int  patch,
float  u,
float  v,
int  channel,
ccl_private float4 du,
ccl_private float4 dv 
)

◆ patch_map_find_patch()

ccl_device_inline PatchHandle patch_map_find_patch ( KernelGlobals  kg,
int  object,
int  patch,
float  u,
float  v 
)

◆ patch_map_resolve_quadrant()

ccl_device_inline int patch_map_resolve_quadrant ( float  median,
ccl_private float u,
ccl_private float v 
)

Definition at line 18 of file kernel/geom/patch.h.

References v.

Referenced by patch_map_find_patch().