diff options
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/smoke.rs')
| -rw-r--r-- | adapters/fparkan-render-vulkan/src/ffi/smoke.rs | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs index c3565e1..ac359c2 100644 --- a/adapters/fparkan-render-vulkan/src/ffi/smoke.rs +++ b/adapters/fparkan-render-vulkan/src/ffi/smoke.rs @@ -3,7 +3,7 @@ use ash::vk; use fparkan_render::{LegacyDepthMode, LegacyPipelineState}; -use super::smoke_types::resolve_draw_texture_indices; +use super::smoke_types::{resolve_draw_texture_indices, VulkanStaticMaterial}; use super::update_material_texture_descriptor; use super::{ create_command_pool, create_frame_sync, create_index_buffer, create_static_mesh_index_buffer, @@ -361,18 +361,7 @@ impl VulkanSmokeRenderer { create_info .materials .iter() - .map(|material| { - let combiner_mode = if material.lightmap_mode { - 3.0 - } else if material.sky_nebula_stars { - 2.0 - } else if material.unlit { - 1.0 - } else { - 0.0 - }; - combiner_mode + if material.sky_far_depth { 4.0 } else { 0.0 } - }) + .map(VulkanStaticMaterial::encoded_material_mode) .collect() }; let material_specular = if create_info.materials.is_empty() { @@ -862,9 +851,9 @@ impl VulkanSmokeRenderer { /// Sets the native per-range alpha reference in legacy 0..=255 units. /// - /// A value of zero selects the renderer's proven native default (one) for - /// alpha-test ranges. The update is dynamic and does not recreate a - /// graphics pipeline. + /// Zero remains an explicit value; use the native-default constant when + /// matching the renderer's initial state. The update is dynamic and does + /// not recreate a graphics pipeline. pub fn set_draw_range_alpha_test_reference( &mut self, range_index: usize, @@ -1091,10 +1080,10 @@ impl VulkanSmokeRenderer { .chain(additive_rgb) .chain(overlay_directional_rgb.into_iter().flatten()) .chain(overlay_additive_rgb.into_iter().flatten()) - .any(|value| !value.is_finite() || value < 0.0) + .any(|value| !value.is_finite()) { return Err(VulkanSmokeRendererError::InvalidStaticMesh { - context: "dynamic material lighting must be finite and non-negative", + context: "dynamic material lighting must be finite", }); } let lighting = self.material_lighting.get_mut(material_index).ok_or( @@ -1155,10 +1144,10 @@ impl VulkanSmokeRenderer { if specular_rgb .into_iter() .chain(overlay_specular_rgb.into_iter().flatten()) - .any(|value| !value.is_finite() || value < 0.0) + .any(|value| !value.is_finite()) { return Err(VulkanSmokeRendererError::InvalidStaticMesh { - context: "dynamic material specular RGB must be finite and non-negative", + context: "dynamic material specular RGB must be finite", }); } let specular = self.material_specular.get_mut(material_index).ok_or( |
