PixelFragment Struct Reference

#include <c4d_raytrace.h>

Public Attributes

PixelFragment next
PixelFragment cluster
RayHitID   id
union {
    UInt16     mask [16]
    UInt32     lmask [16/2]
}; 
Float32   z
Float32   u
Float32   v
Vector32   col
向量   n
Int32   subid

Member Data Documentation

◆  next

PixelFragment * next

The next fragment in the list.

◆  cluster

PixelFragment * cluster

If not nullptr then this pixel fragment is just a dummy for its children, stored as a linear list in 'cluster'.
The coverage masks are then automatically in the union of all children masks.

◆  id

RayHitID id

The global RayHitID structure.

◆  mask

UInt16 mask[16]

The coverage mask. Each pixel fragment can cover 16* 16 sub-pixels at maximum.
For each Y sub-pixel line the mask is stored in PixelFragment::mask[y] . Bit 15 it the leftmost sub-pixel, 0 is at the right.
To check for the upper left sub-pixel use exists=PixelFragment::mask[0]&(1<<15) .

注意
Use either mask or lmask . Both belong to the same union in the structure.

◆  lmask

UInt32 lmask[16/2]

Provides wide access to the 16 elements of mask .

注意
Use either mask or lmask . Both belong to the same union in the structure.

◆  @55

union { ... }

◆  z

Float32 z

The pixel fragment's average z value as the fragment can cover a large Z area this is just a rough Z.

◆  u

Float32 u

The UV coordinates for the pixel fragment for it is first evaluated texture (several textures can be stacked, so only the first one can be stored here).

◆  v

Float32 v

The UV coordinates for the pixel fragment for it is first evaluated texture (several textures can be stacked, so only the first one can be stored here).

◆  col

Vector32 col

The color of the pixel fragment.

◆  n

向量 n

The average normal. As the fragment can cover a 'large' area this is just a rough normal.

◆  subid

Int32 subid

For polygon objects this is the sub-pixel displacement ID.
For perfect sphere objects this is true for the back side and false for the front side.