Renamed translucent_no_shadow to translucent_sort_by_radius

This commit is contained in:
korenkonder
2024-01-12 07:48:12 +03:00
parent d0433e3cf9
commit f53da6a0bf
4 changed files with 45 additions and 44 deletions
+7 -6
View File
@@ -4,6 +4,7 @@
*/
#include "disp_manager.hpp"
#include "../../KKdLib/hash.hpp"
#include "../Glitter/glitter.hpp"
#include "../rob/rob.hpp"
#include "../gl_state.hpp"
@@ -1586,7 +1587,7 @@ namespace mdl {
switch (type) {
case OBJ_TYPE_TRANSLUCENT:
case OBJ_TYPE_TRANSLUCENT_NO_SHADOW:
case OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS:
//case OBJ_TYPE_TRANSLUCENT_LOCAL:
if (depth_mask)
func = draw_sub_mesh_translucent;
@@ -1695,7 +1696,7 @@ namespace mdl {
switch (type) {
case OBJ_TYPE_TRANSLUCENT:
case OBJ_TYPE_TRANSLUCENT_NO_SHADOW:
case OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS:
case OBJ_TYPE_REFLECT_TRANSLUCENT:
case OBJ_TYPE_REFRACT_TRANSLUCENT:
if (!depth_mask)
@@ -1927,7 +1928,7 @@ namespace mdl {
obj_mesh_index_buffer* obj_index_buf, const mat4* mat,
prj::vector<GLuint>* textures, vec4* blend_color, mat4* bone_mat, ::obj* object_morph,
obj_mesh_vertex_buffer* obj_morph_vertex_buf, int32_t instances_count, mat4* instances_mat,
void(*func)(const ObjSubMeshArgs*), const ObjSubMeshArgs* func_data,
void(*func)(const mdl::ObjSubMeshArgs*), const ObjSubMeshArgs* func_data,
bool enable_bone_mat, bool local) {
if (!obj_vertex_buf || !obj_index_buf)
return false;
@@ -2231,9 +2232,9 @@ namespace mdl {
if (!attrib.translucent_priority)
/*if (local)
entry_list(OBJ_TYPE_TRANSLUCENT_LOCAL, data);
else */if (mesh->attrib.m.translucent_no_shadow
|| obj_flags & mdl::OBJ_TRANSLUCENT_NO_SHADOW) {
entry_list(OBJ_TYPE_TRANSLUCENT_NO_SHADOW, data);
else */if (mesh->attrib.m.translucent_sort_by_radius
|| obj_flags & mdl::OBJ_TRANSLUCENT_SORT_BY_RADIUS) {
entry_list(OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, data);
}
else
entry_list(OBJ_TYPE_TRANSLUCENT, data);
+33 -33
View File
@@ -40,44 +40,44 @@ namespace mdl {
};
enum ObjFlags : uint32_t {
OBJ_SHADOW = 0x00000001,
OBJ_2 = 0x00000002,
OBJ_4 = 0x00000004,
OBJ_8 = 0x00000008,
OBJ_10 = 0x00000010,
OBJ_20 = 0x00000020,
OBJ_40 = 0x00000040,
OBJ_SHADOW_OBJECT = 0x00000080,
OBJ_CHARA_REFLECT = 0x00000100,
OBJ_REFLECT = 0x00000200,
OBJ_REFRACT = 0x00000400,
OBJ_800 = 0x00000800,
OBJ_TRANSLUCENT_NO_SHADOW = 0x00001000,
OBJ_SSS = 0x00002000,
OBJ_4000 = 0x00004000,
OBJ_8000 = 0x00008000,
OBJ_ALPHA_ORDER_1 = 0x00010000,
OBJ_ALPHA_ORDER_2 = 0x00020000,
OBJ_ALPHA_ORDER_3 = 0x00040000,
OBJ_80000 = 0x00080000,
OBJ_100000 = 0x00100000,
OBJ_200000 = 0x00200000,
OBJ_400000 = 0x00400000,
OBJ_800000 = 0x00800000,
OBJ_USER = 0x01000000,
OBJ_2000000 = 0x02000000,
OBJ_4000000 = 0x04000000,
OBJ_8000000 = 0x08000000,
OBJ_10000000 = 0x10000000,
OBJ_20000000 = 0x20000000,
OBJ_40000000 = 0x40000000,
OBJ_NO_TRANSLUCENCY = 0x80000000,
OBJ_SHADOW = 0x00000001,
OBJ_2 = 0x00000002,
OBJ_4 = 0x00000004,
OBJ_8 = 0x00000008,
OBJ_10 = 0x00000010,
OBJ_20 = 0x00000020,
OBJ_40 = 0x00000040,
OBJ_SHADOW_OBJECT = 0x00000080,
OBJ_CHARA_REFLECT = 0x00000100,
OBJ_REFLECT = 0x00000200,
OBJ_REFRACT = 0x00000400,
OBJ_800 = 0x00000800,
OBJ_TRANSLUCENT_SORT_BY_RADIUS = 0x00001000,
OBJ_SSS = 0x00002000,
OBJ_4000 = 0x00004000,
OBJ_8000 = 0x00008000,
OBJ_ALPHA_ORDER_1 = 0x00010000,
OBJ_ALPHA_ORDER_2 = 0x00020000,
OBJ_ALPHA_ORDER_3 = 0x00040000,
OBJ_80000 = 0x00080000,
OBJ_100000 = 0x00100000,
OBJ_200000 = 0x00200000,
OBJ_400000 = 0x00400000,
OBJ_800000 = 0x00800000,
OBJ_USER = 0x01000000,
OBJ_2000000 = 0x02000000,
OBJ_4000000 = 0x04000000,
OBJ_8000000 = 0x08000000,
OBJ_10000000 = 0x10000000,
OBJ_20000000 = 0x20000000,
OBJ_40000000 = 0x40000000,
OBJ_NO_TRANSLUCENCY = 0x80000000,
};
enum ObjType {
OBJ_TYPE_OPAQUE = 0,
OBJ_TYPE_TRANSLUCENT,
OBJ_TYPE_TRANSLUCENT_NO_SHADOW,
OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS,
OBJ_TYPE_TRANSPARENT,
OBJ_TYPE_SHADOW_CHARA,
OBJ_TYPE_SHADOW_STAGE,
+1 -1
View File
@@ -323,7 +323,7 @@ static_assert(sizeof(obj_sub_mesh) == 0x70, "\"obj_sub_mesh\" struct should have
struct obj_mesh_attrib_member {
uint32_t double_buffer : 1;
uint32_t billboard_y_axis : 1;
uint32_t translucent_no_shadow : 1;
uint32_t translucent_sort_by_radius : 1;
uint32_t billboard : 1;
uint32_t dummy : 28;
};
+4 -4
View File
@@ -703,7 +703,7 @@ namespace rndr {
if (alpha_z_sort) {
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT, 1);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, 2);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, 2);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_1, 1);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2, 1);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_3, 1);
@@ -768,7 +768,7 @@ namespace rndr {
gl_state_enable_blend();
gl_state_set_blend_func(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
gl_state_set_depth_mask(GL_FALSE);
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW);
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS);
disp_manager->draw(mdl::OBJ_TYPE_TRANSLUCENT);
gl_state_disable_blend();
}
@@ -859,7 +859,7 @@ namespace rndr {
if (alpha_z_sort) {
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT, 1);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, 2);
disp_manager->obj_sort(&rctx->view_mat, mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, 2);
}
if (opaque_z_sort)
@@ -875,7 +875,7 @@ namespace rndr {
if (draw_pass_3d[DRAW_PASS_3D_TRANSPARENT])
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSPARENT, i);
if (draw_pass_3d[DRAW_PASS_3D_TRANSLUCENT]) {
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT_NO_SHADOW, i);
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT_SORT_BY_RADIUS, i);
draw_task_draw_objects_by_type_show_vector(mdl::OBJ_TYPE_TRANSLUCENT, i);
}
}