Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

RDPipelineDepthStencilState

继承: RefCounted < Object

管线的深度/模板状态(由 RenderingDevice 使用)。

描述

RDPipelineDepthStencilState 控制的是在使用 RenderingDevice 对深度和模板进行采样时,如何进行深度和模板的比较。

属性

CompareOperator

back_op_compare

7

int

back_op_compare_mask

0

StencilOperation

back_op_depth_fail

1

StencilOperation

back_op_fail

1

StencilOperation

back_op_pass

1

int

back_op_reference

0

int

back_op_write_mask

0

CompareOperator

depth_compare_operator

7

float

depth_range_max

0.0

float

depth_range_min

0.0

bool

enable_depth_range

false

bool

enable_depth_test

false

bool

enable_depth_write

false

bool

enable_stencil

false

CompareOperator

front_op_compare

7

int

front_op_compare_mask

0

StencilOperation

front_op_depth_fail

1

StencilOperation

front_op_fail

1

StencilOperation

front_op_pass

1

int

front_op_reference

0

int

front_op_write_mask

0


属性说明

CompareOperator back_op_compare = 7

用于比较前一个背面模板值和 back_op_reference 的方法。


int back_op_compare_mask = 0

  • void set_back_op_compare_mask ( int value )

  • int get_back_op_compare_mask ( )

选择将比较背面模板值中的哪些位。


StencilOperation back_op_depth_fail = 1

对通过模板测试但未通过深度测试的背面像素的模板缓冲区执行的操作。


StencilOperation back_op_fail = 1

对模板缓冲区中未通过模板测试的背面像素执行的操作


StencilOperation back_op_pass = 1

对通过模板测试的背面像素的模板缓冲区执行的操作。


int back_op_reference = 0

  • void set_back_op_reference ( int value )

  • int get_back_op_reference ( )

将与前一个背面模板值进行比较的值。


int back_op_write_mask = 0

  • void set_back_op_write_mask ( int value )

  • int get_back_op_write_mask ( )

选择背面模板值中的哪些位将被更改。


CompareOperator depth_compare_operator = 7

用于比较前一个和当前深度值的方法。


float depth_range_max = 0.0

  • void set_depth_range_max ( float value )

  • float get_depth_range_max ( )

enable_depth_range 将返回 true 的最大深度。


float depth_range_min = 0.0

  • void set_depth_range_min ( float value )

  • float get_depth_range_min ( )

enable_depth_range 将返回 true 的最小深度。


bool enable_depth_range = false

  • void set_enable_depth_range ( bool value )

  • bool get_enable_depth_range ( )

如果为 true,则将测试每个深度值以查看它是否在 depth_range_mindepth_range_max 之间。如果超出这些值,则将其丢弃。


bool enable_depth_test = false

  • void set_enable_depth_test ( bool value )

  • bool get_enable_depth_test ( )

如果为 true,则会启用深度测试,能够让对象根据深度自动被其他对象遮挡。这样对象就能够被其他对象部分遮挡。如果为 false,则对象会按照绘制顺序显示(类似 Godot 的 2D 渲染器)。


bool enable_depth_write = false

  • void set_enable_depth_write ( bool value )

  • bool get_enable_depth_write ( )

如果为 true,则每当深度测试返回 true 时写入深度缓冲区。仅当 enable_depth_test 也为 true 时才有效。


bool enable_stencil = false

  • void set_enable_stencil ( bool value )

  • bool get_enable_stencil ( )

如果为 true,则启用模板测试。正面三角形和背面三角形有单独的模板缓冲区。请参阅每个以“front_op”开头、和以“back_op”开头的属性。


CompareOperator front_op_compare = 7

该方法用于比较前一个正面模板值和 front_op_reference


int front_op_compare_mask = 0

  • void set_front_op_compare_mask ( int value )

  • int get_front_op_compare_mask ( )

选择正面模板值中的哪些位将被比较。


StencilOperation front_op_depth_fail = 1

对通过模板测试但未通过深度测试的正面像素的模板缓冲区执行的操作。


StencilOperation front_op_fail = 1

对模板缓冲区中未通过模板测试的正面像素执行的操作。


StencilOperation front_op_pass = 1

对通过模板测试的正面像素的模板缓冲区执行的操作。


int front_op_reference = 0

  • void set_front_op_reference ( int value )

  • int get_front_op_reference ( )

将与前一个正面模板值进行比较的值。


int front_op_write_mask = 0

  • void set_front_op_write_mask ( int value )

  • int get_front_op_write_mask ( )

选择正面模板值中的哪些位将被更改。