4 #include <cgv/media/color.h>
16 BT_STRAUSS_DIFFUSE = 2,
20 BT_COOK_TORRANCE = 12,
56 BrdfType _brdf_type = BrdfType(BT_STRAUSS_DIFFUSE + BT_STRAUSS),
58 float _roughness = 0.5f,
59 float _metalness = 0.0f,
60 float _ambient_occlusion = 1.0f,
62 float _transparency = 0.0f,
63 const std::complex<float>& _propagation_slow_down = std::complex<float>(1.5f,0.0f),
64 float _roughness_anisotropy = 0.0f,
65 float _roughness_orientation = 0.0f,
69 void set_brdf_type(BrdfType brdf_type) { this->brdf_type = brdf_type; }
70 BrdfType get_brdf_type()
const {
return brdf_type; }
71 BrdfType& ref_brdf_type() {
return brdf_type; }
73 void set_ambient_occlusion(
float ambient_occlusion) { this->ambient_occlusion = ambient_occlusion; }
74 float get_ambient_occlusion()
const {
return ambient_occlusion; }
75 float& ref_ambient_occlusion() {
return ambient_occlusion; }
77 void set_diffuse_reflectance(color_type diffuse_reflectance) { this->diffuse_reflectance = diffuse_reflectance; }
78 color_type get_diffuse_reflectance()
const {
return diffuse_reflectance; }
79 color_type& ref_diffuse_reflectance() {
return diffuse_reflectance; }
81 void set_specular_reflectance(color_type specular_reflectance) { this->specular_reflectance = specular_reflectance; }
82 color_type get_specular_reflectance()
const {
return specular_reflectance; }
83 color_type& ref_specular_reflectance() {
return specular_reflectance; }
85 void set_emission(color_type emission) { this->emission = emission; }
86 color_type get_emission()
const {
return emission; }
87 color_type& ref_emission() {
return emission; }
89 void set_transparency(
float transparency) { this->transparency = transparency; }
90 float get_transparency()
const {
return transparency; }
91 float& ref_transparency() {
return transparency; }
93 void set_roughness(
float roughness) { this->roughness = roughness; }
94 float get_roughness()
const {
return roughness; }
95 float& ref_roughness() {
return roughness; }
97 void set_metalness(
float metalness) { this->metalness = metalness; }
98 float get_metalness()
const {
return metalness; }
99 float& ref_metalness() {
return metalness; }
101 void set_roughness_anisotropy(
float roughness_anisotropy) { this->roughness_anisotropy = roughness_anisotropy; }
102 float get_roughness_anisotropy()
const {
return roughness_anisotropy; }
103 float& ref_roughness_anisotropy() {
return roughness_anisotropy; }
105 void set_roughness_orientation(
float roughness_orientation) { this->roughness_orientation = roughness_orientation; }
106 float get_roughness_orientation()
const {
return roughness_orientation; }
107 float& ref_roughness_orientation() {
return roughness_orientation; }
109 void set_propagation_slow_down(std::complex<float> propagation_slow_down) { this->propagation_slow_down = propagation_slow_down; }
110 std::complex<float> get_propagation_slow_down()
const {
return propagation_slow_down; }
111 std::complex<float>& ref_propagation_slow_down() {
return propagation_slow_down; }
114 enum StandardMaterial
128 extern CGV_API
const surface_material& get_surface_material(StandardMaterial material_id);
134 #include <cgv/config/lib_end.h>