diff --git a/fast64_internal/f3d/f3d_material.py b/fast64_internal/f3d/f3d_material.py index 2a363d0b4..3ddb05e49 100644 --- a/fast64_internal/f3d/f3d_material.py +++ b/fast64_internal/f3d/f3d_material.py @@ -3418,10 +3418,6 @@ def getOptimalFormat(tex, curFormat, isMultitexture): return texFormat -def getCurrentPresetDir(): - return "f3d/" + bpy.context.scene.gameEditorMode.lower() - - # modules/bpy_types.py -> Menu class MATERIAL_MT_f3d_presets(Menu): bl_label = "F3D Material Presets" @@ -3441,12 +3437,19 @@ def draw(self, _context): ext_valid = getattr(self, "preset_extensions", {".py", ".xml"}) props_default = getattr(self, "preset_operator_defaults", None) add_operator = getattr(self, "preset_add_operator", None) - presetDir = getCurrentPresetDir() + + game = bpy.context.scene.gameEditorMode.lower() paths = bpy.utils.preset_paths("f3d/user") if not bpy.context.scene.f3dUserPresetsOnly: - paths += bpy.utils.preset_paths(presetDir) - if bpy.context.scene.f3d_type == "F3DEX3": - paths += bpy.utils.preset_paths(f"{presetDir}_f3dex3") + if game == "sm64": + if bpy.context.scene.fast64.sm64.lighting_engine_presets: + paths += bpy.utils.preset_paths("f3d/sm64_lighting_engine") + else: + paths += bpy.utils.preset_paths("f3d/sm64") + elif game == "oot": + paths += bpy.utils.preset_paths("f3d/oot") + if bpy.context.scene.f3d_type == "F3DEX3": + paths += bpy.utils.preset_paths("f3d/oot_f3dex3") self.path_menu( paths, self.preset_operator, diff --git a/fast64_internal/f3d/f3d_material_presets.py b/fast64_internal/f3d/f3d_material_presets.py index bcdfa0722..5f066b215 100644 --- a/fast64_internal/f3d/f3d_material_presets.py +++ b/fast64_internal/f3d/f3d_material_presets.py @@ -2093,14 +2093,14 @@ f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update """ -sm64_environment_map = """ +sm64_unlit_environment_map = """ import bpy f3d_mat = bpy.context.material.f3d_mat bpy.context.material.f3d_update_flag = True f3d_mat.name = '' -f3d_mat.presetName = 'Sm64 Environment Map' +f3d_mat.presetName = 'Sm64 Unlit Environment Map' f3d_mat.combiner1.name = '' f3d_mat.combiner1.A = '0' f3d_mat.combiner1.B = '0' @@ -3409,7 +3409,7 @@ f3d_mat.combiner1.A_alpha = '0' f3d_mat.combiner1.B_alpha = '0' f3d_mat.combiner1.C_alpha = '0' -f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner1.D_alpha = 'TEXEL0' f3d_mat.combiner2.name = '' f3d_mat.combiner2.A = '0' f3d_mat.combiner2.B = '0' @@ -3418,7 +3418,7 @@ f3d_mat.combiner2.A_alpha = '0' f3d_mat.combiner2.B_alpha = '0' f3d_mat.combiner2.C_alpha = '0' -f3d_mat.combiner2.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.D_alpha = 'TEXEL0' f3d_mat.tex0.tex_set = True f3d_mat.tex1.tex_set = True f3d_mat.set_prim = True @@ -7312,60 +7312,1248 @@ f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update """ -material_presets = { - "oot": { - "oot_shaded_environment_mapped": oot_shaded_environment_mapped, - "oot_shaded_environment_mapped_transparent": oot_shaded_environment_mapped_transparent, - "oot_shaded_multitexture_lerp": oot_shaded_multitexture_lerp, - "oot_shaded_multitexture_lerp_transparent": oot_shaded_multitexture_lerp_transparent, - "oot_shaded_multitexture_lerp_transparent_vertex_alpha": oot_shaded_multitexture_lerp_transparent_vertex_alpha, - "oot_shaded_solid": oot_shaded_solid, - "oot_shaded_solid_transparent": oot_shaded_solid_transparent, - "oot_shaded_texture": oot_shaded_texture, - "oot_shaded_texture_cutout": oot_shaded_texture_cutout, - "oot_shaded_texture_transparent": oot_shaded_texture_transparent, - "oot_shaded_texture_transparent_vertex_alpha": oot_shaded_texture_transparent_vertex_alpha, - "oot_unlit_texture": oot_unlit_texture, - "oot_unlit_texture_cutout": oot_unlit_texture_cutout, - "oot_unlit_texture_transparent": oot_unlit_texture_transparent, - "oot_vertex_colored_texture": oot_vertex_colored_texture, - "oot_vertex_colored_texture_cutout": oot_vertex_colored_texture_cutout, - "oot_vertex_colored_texture_transparent": oot_vertex_colored_texture_transparent, - }, - "oot_f3dex3": { - "oot_cel_4_blend_tex_vcol_ao": oot_cel_4_blend_tex_vcol_ao, - "oot_cel_blend_tex_vcol_ltcol": oot_cel_blend_tex_vcol_ltcol, - "oot_cel_blend_tex_vcol_ltcol_ao": oot_cel_blend_tex_vcol_ltcol_ao, - "oot_cel_blend_vcol": oot_cel_blend_vcol, - "oot_cel_mul_tex": oot_cel_mul_tex, - "oot_ghost_fresnel": oot_ghost_fresnel, - "oot_ghost_texture_fresnel": oot_ghost_texture_fresnel, - "oot_glass_specular_fresnel": oot_glass_specular_fresnel, - "oot_shaded_solid_ao": oot_shaded_solid_ao, - "oot_shaded_solid_ao_transparent": oot_shaded_solid_ao_transparent, - "oot_shaded_specular_vcol_texture": oot_shaded_specular_vcol_texture, - "oot_shaded_vcol_multitexture_lerp_ao": oot_shaded_vcol_multitexture_lerp_ao, - "oot_shaded_vcol_multitexture_lerp_ao_transparent": oot_shaded_vcol_multitexture_lerp_ao_transparent, - "oot_shaded_vcol_multitexture_lerp_transparent_vertex_alpha": oot_shaded_vcol_multitexture_lerp_transparent_vertex_alpha, - "oot_shaded_vcol_solid_ao": oot_shaded_vcol_solid_ao, - "oot_shaded_vcol_solid_ao_transparent": oot_shaded_vcol_solid_ao_transparent, - "oot_shaded_vcol_texture_ao": oot_shaded_vcol_texture_ao, - "oot_shaded_vcol_texture_ao_transparent": oot_shaded_vcol_texture_ao_transparent, - "oot_shaded_vcol_texture_transparent_vertex_alpha": oot_shaded_vcol_texture_transparent_vertex_alpha, - "oot_water_lerp_specular_fresnel": oot_water_lerp_specular_fresnel, - "oot_water_mult_specular_fresnel": oot_water_mult_specular_fresnel, - }, - "sm64": { - "sm64_decal": sm64_decal, - "sm64_environment_map": sm64_environment_map, - "sm64_fog_shaded_texture": sm64_fog_shaded_texture, - "sm64_fog_shaded_texture_cutout": sm64_fog_shaded_texture_cutout, - "sm64_fog_shaded_texture_transparent": sm64_fog_shaded_texture_transparent, - "sm64_shaded_noise": sm64_shaded_noise, - "sm64_shaded_solid": sm64_shaded_solid, - "sm64_shaded_texture": sm64_shaded_texture, - "sm64_shaded_texture_cutout": sm64_shaded_texture_cutout, - "sm64_shaded_texture_transparent": sm64_shaded_texture_transparent, +# SM64 Lighting Engine specific + +lighting_engine_sm64_decal = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Decal' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = 'PRIMITIVE' +f3d_mat.combiner1.C = 'TEXEL0_ALPHA' +f3d_mat.combiner1.D = 'PRIMITIVE' +f3d_mat.combiner1.A_alpha = '0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = '0' +f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = 'COMBINED' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = 'SHADE' +f3d_mat.combiner2.D = '0' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'COMBINED' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = True +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_2CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = True +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_NOOP' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '1' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_environment_map = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Environment Map' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = '0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = '0' +f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = '0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = '0' +f3d_mat.combiner2.D = 'TEXEL0' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'ENVIRONMENT' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = True +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = True +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_1CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = False +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_AA_ZB_OPA_SURF' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '1' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_fog_shaded_texture = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Fog Shaded Texture' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = '0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = '0' +f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = '0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = '0' +f3d_mat.combiner2.D = 'COMBINED' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'COMBINED' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = True +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = True +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = True +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_2CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = True +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_FOG_SHADE_A' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '1' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_fog_shaded_texture_cutout = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Fog Shaded Texture Cutout' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = 'TEXEL0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = 'ENVIRONMENT' +f3d_mat.combiner1.D_alpha = '0' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = '0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = '0' +f3d_mat.combiner2.D = 'COMBINED' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'COMBINED' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = True +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = False +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = True +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_2CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = True +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_FOG_SHADE_A' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_TEX_EDGE2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '4' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_fog_shaded_texture_transparent = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Fog Shaded Texture Transparent' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = 'TEXEL0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = 'PRIMITIVE' +f3d_mat.combiner1.D_alpha = '0' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = '0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = '0' +f3d_mat.combiner2.D = 'COMBINED' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'COMBINED' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = True +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = False +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = True +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_2CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = True +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_FOG_SHADE_A' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_XLU_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '5' +f3d_mat.draw_layer.oot = 'Transparent' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_shaded_noise = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Shaded Noise' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'NOISE' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = '0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = '0' +f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = 'NOISE' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = 'SHADE' +f3d_mat.combiner2.D = '0' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'ENVIRONMENT' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = True +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_1CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = False +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_AA_ZB_OPA_SURF' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '1' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_shaded_solid = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Shaded Solid' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'PRIMITIVE' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = '0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = '0' +f3d_mat.combiner1.D_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = '0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = '0' +f3d_mat.combiner2.D = 'SHADE' +f3d_mat.combiner2.A_alpha = '0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = '0' +f3d_mat.combiner2.D_alpha = 'ENVIRONMENT' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = True +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_1CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = False +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_AA_ZB_OPA_SURF' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '1' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_shaded_texture_cutout = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Shaded Texture Cutout' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = 'TEXEL0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = 'ENVIRONMENT' +f3d_mat.combiner1.D_alpha = '0' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = 'TEXEL0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = 'SHADE' +f3d_mat.combiner2.D = '0' +f3d_mat.combiner2.A_alpha = 'TEXEL0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = 'ENVIRONMENT' +f3d_mat.combiner2.D_alpha = '0' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = False +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_1CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = False +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_AA_ZB_OPA_SURF' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '4' +f3d_mat.draw_layer.oot = 'Opaque' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +lighting_engine_sm64_shaded_texture_transparent = """ + +import bpy +f3d_mat = bpy.context.material.f3d_mat +bpy.context.material.f3d_update_flag = True + +f3d_mat.name = '' +f3d_mat.presetName = 'Sm64 Shaded Texture Transparent' +f3d_mat.combiner1.name = '' +f3d_mat.combiner1.A = 'TEXEL0' +f3d_mat.combiner1.B = '0' +f3d_mat.combiner1.C = 'SHADE' +f3d_mat.combiner1.D = '0' +f3d_mat.combiner1.A_alpha = 'TEXEL0' +f3d_mat.combiner1.B_alpha = '0' +f3d_mat.combiner1.C_alpha = 'PRIMITIVE' +f3d_mat.combiner1.D_alpha = '0' +f3d_mat.combiner2.name = '' +f3d_mat.combiner2.A = 'TEXEL0' +f3d_mat.combiner2.B = '0' +f3d_mat.combiner2.C = 'SHADE' +f3d_mat.combiner2.D = '0' +f3d_mat.combiner2.A_alpha = 'TEXEL0' +f3d_mat.combiner2.B_alpha = '0' +f3d_mat.combiner2.C_alpha = 'PRIMITIVE' +f3d_mat.combiner2.D_alpha = '0' +f3d_mat.tex0.tex_set = True +f3d_mat.tex1.tex_set = True +f3d_mat.set_prim = True +f3d_mat.set_lights = False +f3d_mat.set_env = False +f3d_mat.set_blend = False +f3d_mat.set_key = True +f3d_mat.set_k0_5 = True +f3d_mat.set_combiner = True +f3d_mat.use_default_lighting = True +f3d_mat.blend_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.prim_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.env_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_center = (1.0, 1.0, 1.0, 1.0) +f3d_mat.key_scale = (0.0, 0.0, 0.0) +f3d_mat.key_width = (0.0, 0.0, 0.0) +f3d_mat.k0 = 0.686274528503418 +f3d_mat.k1 = -0.16862745583057404 +f3d_mat.k2 = -0.3490196168422699 +f3d_mat.k3 = 0.8705882430076599 +f3d_mat.k4 = 0.4470588266849518 +f3d_mat.k5 = 0.16470588743686676 +f3d_mat.prim_lod_frac = 0.0 +f3d_mat.prim_lod_min = 0.0 +f3d_mat.default_light_color = (1.0, 1.0, 1.0, 1.0) +f3d_mat.ambient_light_color = (0.5, 0.5, 0.5, 1.0) +f3d_mat.f3d_light1 = None +f3d_mat.f3d_light2 = None +f3d_mat.f3d_light3 = None +f3d_mat.f3d_light4 = None +f3d_mat.f3d_light5 = None +f3d_mat.f3d_light6 = None +f3d_mat.f3d_light7 = None +f3d_mat.set_ao = False +f3d_mat.set_fresnel = False +f3d_mat.set_attroffs_st = False +f3d_mat.set_attroffs_z = False +f3d_mat.fog_color = (0.0, 0.0, 0.0, 1.0) +f3d_mat.fog_position = (985, 1000) +f3d_mat.set_fog = False +f3d_mat.use_global_fog = True +f3d_mat.rdp_settings.name = '' +f3d_mat.rdp_settings.g_zbuffer = True +f3d_mat.rdp_settings.g_shade = True +f3d_mat.rdp_settings.g_ambocclusion = False +f3d_mat.rdp_settings.g_attroffset_z_enable = False +f3d_mat.rdp_settings.g_attroffset_st_enable = False +f3d_mat.rdp_settings.g_cull_front = False +f3d_mat.rdp_settings.g_cull_back = False +f3d_mat.rdp_settings.g_packed_normals = False +f3d_mat.rdp_settings.g_lighttoalpha = False +f3d_mat.rdp_settings.g_lighting_specular = False +f3d_mat.rdp_settings.g_fresnel_color = False +f3d_mat.rdp_settings.g_fresnel_alpha = False +f3d_mat.rdp_settings.g_fog = False +f3d_mat.rdp_settings.g_lighting = True +f3d_mat.rdp_settings.g_tex_gen = False +f3d_mat.rdp_settings.g_tex_gen_linear = False +f3d_mat.rdp_settings.g_lod = False +f3d_mat.rdp_settings.g_shade_smooth = True +f3d_mat.rdp_settings.g_clipping = False +f3d_mat.rdp_settings.g_mdsft_alpha_dither = 'G_AD_NOISE' +f3d_mat.rdp_settings.g_mdsft_rgb_dither = 'G_CD_MAGICSQ' +f3d_mat.rdp_settings.g_mdsft_combkey = 'G_CK_NONE' +f3d_mat.rdp_settings.g_mdsft_textconv = 'G_TC_FILT' +f3d_mat.rdp_settings.g_mdsft_text_filt = 'G_TF_BILERP' +f3d_mat.rdp_settings.g_mdsft_textlut = 'G_TT_NONE' +f3d_mat.rdp_settings.g_mdsft_textlod = 'G_TL_TILE' +f3d_mat.rdp_settings.g_mdsft_textdetail = 'G_TD_CLAMP' +f3d_mat.rdp_settings.g_mdsft_textpersp = 'G_TP_PERSP' +f3d_mat.rdp_settings.g_mdsft_cycletype = 'G_CYC_1CYCLE' +f3d_mat.rdp_settings.g_mdsft_color_dither = 'G_CD_ENABLE' +f3d_mat.rdp_settings.g_mdsft_pipeline = 'G_PM_1PRIMITIVE' +f3d_mat.rdp_settings.g_mdsft_alpha_compare = 'G_AC_NONE' +f3d_mat.rdp_settings.g_mdsft_zsrcsel = 'G_ZS_PIXEL' +f3d_mat.rdp_settings.clip_ratio = 1 +f3d_mat.rdp_settings.set_rendermode = False +f3d_mat.rdp_settings.rendermode_advanced_enabled = False +f3d_mat.rdp_settings.rendermode_preset_cycle_1 = 'G_RM_AA_ZB_OPA_SURF' +f3d_mat.rdp_settings.rendermode_preset_cycle_2 = 'G_RM_AA_ZB_OPA_SURF2' +f3d_mat.rdp_settings.aa_en = False +f3d_mat.rdp_settings.z_cmp = False +f3d_mat.rdp_settings.z_upd = False +f3d_mat.rdp_settings.im_rd = False +f3d_mat.rdp_settings.clr_on_cvg = False +f3d_mat.rdp_settings.cvg_dst = 'CVG_DST_CLAMP' +f3d_mat.rdp_settings.zmode = 'ZMODE_OPA' +f3d_mat.rdp_settings.cvg_x_alpha = False +f3d_mat.rdp_settings.alpha_cvg_sel = False +f3d_mat.rdp_settings.force_bl = False +f3d_mat.rdp_settings.blend_p1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_p2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m1 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_m2 = 'G_BL_CLR_IN' +f3d_mat.rdp_settings.blend_a1 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_a2 = 'G_BL_A_IN' +f3d_mat.rdp_settings.blend_b1 = 'G_BL_1MA' +f3d_mat.rdp_settings.blend_b2 = 'G_BL_1MA' +f3d_mat.draw_layer.sm64 = '5' +f3d_mat.draw_layer.oot = 'Transparent' +bpy.context.material.f3d_update_flag = False +f3d_mat.use_default_lighting = f3d_mat.use_default_lighting # Force nodes update +""" + +material_presets = { + "oot": { + "oot_shaded_environment_mapped": oot_shaded_environment_mapped, + "oot_shaded_environment_mapped_transparent": oot_shaded_environment_mapped_transparent, + "oot_shaded_multitexture_lerp": oot_shaded_multitexture_lerp, + "oot_shaded_multitexture_lerp_transparent": oot_shaded_multitexture_lerp_transparent, + "oot_shaded_multitexture_lerp_transparent_vertex_alpha": oot_shaded_multitexture_lerp_transparent_vertex_alpha, + "oot_shaded_solid": oot_shaded_solid, + "oot_shaded_solid_transparent": oot_shaded_solid_transparent, + "oot_shaded_texture": oot_shaded_texture, + "oot_shaded_texture_cutout": oot_shaded_texture_cutout, + "oot_shaded_texture_transparent": oot_shaded_texture_transparent, + "oot_shaded_texture_transparent_vertex_alpha": oot_shaded_texture_transparent_vertex_alpha, + "oot_unlit_texture": oot_unlit_texture, + "oot_unlit_texture_cutout": oot_unlit_texture_cutout, + "oot_unlit_texture_transparent": oot_unlit_texture_transparent, + "oot_vertex_colored_texture": oot_vertex_colored_texture, + "oot_vertex_colored_texture_cutout": oot_vertex_colored_texture_cutout, + "oot_vertex_colored_texture_transparent": oot_vertex_colored_texture_transparent, + }, + "oot_f3dex3": { + "oot_cel_4_blend_tex_vcol_ao": oot_cel_4_blend_tex_vcol_ao, + "oot_cel_blend_tex_vcol_ltcol": oot_cel_blend_tex_vcol_ltcol, + "oot_cel_blend_tex_vcol_ltcol_ao": oot_cel_blend_tex_vcol_ltcol_ao, + "oot_cel_blend_vcol": oot_cel_blend_vcol, + "oot_cel_mul_tex": oot_cel_mul_tex, + "oot_ghost_fresnel": oot_ghost_fresnel, + "oot_ghost_texture_fresnel": oot_ghost_texture_fresnel, + "oot_glass_specular_fresnel": oot_glass_specular_fresnel, + "oot_shaded_solid_ao": oot_shaded_solid_ao, + "oot_shaded_solid_ao_transparent": oot_shaded_solid_ao_transparent, + "oot_shaded_specular_vcol_texture": oot_shaded_specular_vcol_texture, + "oot_shaded_vcol_multitexture_lerp_ao": oot_shaded_vcol_multitexture_lerp_ao, + "oot_shaded_vcol_multitexture_lerp_ao_transparent": oot_shaded_vcol_multitexture_lerp_ao_transparent, + "oot_shaded_vcol_multitexture_lerp_transparent_vertex_alpha": oot_shaded_vcol_multitexture_lerp_transparent_vertex_alpha, + "oot_shaded_vcol_solid_ao": oot_shaded_vcol_solid_ao, + "oot_shaded_vcol_solid_ao_transparent": oot_shaded_vcol_solid_ao_transparent, + "oot_shaded_vcol_texture_ao": oot_shaded_vcol_texture_ao, + "oot_shaded_vcol_texture_ao_transparent": oot_shaded_vcol_texture_ao_transparent, + "oot_shaded_vcol_texture_transparent_vertex_alpha": oot_shaded_vcol_texture_transparent_vertex_alpha, + "oot_water_lerp_specular_fresnel": oot_water_lerp_specular_fresnel, + "oot_water_mult_specular_fresnel": oot_water_mult_specular_fresnel, + }, + "sm64": { + "sm64_decal": sm64_decal, + "sm64_fog_shaded_texture": sm64_fog_shaded_texture, + "sm64_fog_shaded_texture_cutout": sm64_fog_shaded_texture_cutout, + "sm64_fog_shaded_texture_transparent": sm64_fog_shaded_texture_transparent, + "sm64_shaded_noise": sm64_shaded_noise, + "sm64_shaded_solid": sm64_shaded_solid, + "sm64_shaded_texture": sm64_shaded_texture, + "sm64_shaded_texture_cutout": sm64_shaded_texture_cutout, + "sm64_shaded_texture_transparent": sm64_shaded_texture_transparent, + "sm64_unlit_environment_map": sm64_unlit_environment_map, + "sm64_unlit_texture": sm64_unlit_texture, + "sm64_unlit_texture_cutout": sm64_unlit_texture_cutout, + "sm64_vertex_colored_texture": sm64_vertex_colored_texture, + "sm64_vertex_colored_texture_transparent": sm64_vertex_colored_texture_transparent, + }, + "sm64_lighting_engine": { + "sm64_decal": lighting_engine_sm64_decal, + "sm64_environment_map": lighting_engine_sm64_environment_map, + "sm64_fog_shaded_texture": lighting_engine_sm64_fog_shaded_texture, + "sm64_fog_shaded_texture_cutout": lighting_engine_sm64_fog_shaded_texture_cutout, + "sm64_fog_shaded_texture_transparent": lighting_fog_shaded_texture_transparent, + "sm64_shaded_noise": lighting_engine_sm64_shaded_noise, + "sm64_shaded_solid": lighting_engine_sm64_shaded_solid, + "sm64_shaded_texture_cutout": lighting_engine_sm64_shaded_texture_cutout, + "sm64_shaded_texture_transparent": lighting_engine_sm64_shaded_texture_transparent, + "sm64_unlit_environment_map": sm64_unlit_environment_map, "sm64_unlit_texture": sm64_unlit_texture, "sm64_unlit_texture_cutout": sm64_unlit_texture_cutout, "sm64_vertex_colored_texture": sm64_vertex_colored_texture, diff --git a/fast64_internal/sm64/settings/panels.py b/fast64_internal/sm64/settings/panels.py index a92e95569..847ce2fee 100644 --- a/fast64_internal/sm64/settings/panels.py +++ b/fast64_internal/sm64/settings/panels.py @@ -23,6 +23,7 @@ def draw_repo_settings(scene: Scene, layout: UILayout): prop_split(col, sm64_props, "refresh_version", "Refresh (Function Map)") col.prop(sm64_props, "force_extended_ram") col.prop(sm64_props, "matstack_fix") + col.prop(sm64_props, "lighting_engine_presets") class SM64_GeneralSettingsPanel(SM64_Panel): diff --git a/fast64_internal/sm64/settings/properties.py b/fast64_internal/sm64/settings/properties.py index 92a0fb748..024c5c726 100644 --- a/fast64_internal/sm64/settings/properties.py +++ b/fast64_internal/sm64/settings/properties.py @@ -68,11 +68,8 @@ class SM64_Properties(PropertyGroup): refresh_version: EnumProperty(items=enum_refresh_versions, name="Refresh", default="Refresh 13") compression_format: EnumProperty(items=enum_compression_formats, name="Compression", default="mio0") force_extended_ram: BoolProperty(name="Force Extended Ram", default=True) - matstack_fix: BoolProperty( - name="Matstack Fix", - description="Exports account for matstack fix requirements", - default=False, - ) + matstack_fix: BoolProperty(name="Matstack Fix", description="Exports account for matstack fix requirements") + lighting_engine_presets: BoolProperty(name="Lighting Engine Presets") def is_binary_export(self): return self.export_type in ["Binary", "Insertable Binary"] @@ -158,6 +155,7 @@ def draw_props(self, layout: UILayout, show_repo_settings: bool = True): prop_split(col, self, "refresh_version", "Refresh (Function Map)") col.prop(self, "force_extended_ram") col.prop(self, "matstack_fix") + col.prop(self, "lighting_engine_presets") col.separator() diff --git a/fast64_internal/sm64/settings/repo_settings.py b/fast64_internal/sm64/settings/repo_settings.py index 09c6d43dd..2d50c903b 100644 --- a/fast64_internal/sm64/settings/repo_settings.py +++ b/fast64_internal/sm64/settings/repo_settings.py @@ -21,6 +21,7 @@ def save_sm64_repo_settings(scene: Scene): data["compression_format"] = sm64_props.compression_format data["force_extended_ram"] = sm64_props.force_extended_ram data["matstack_fix"] = sm64_props.matstack_fix + data["lighting_engine_presets"] = sm64_props.lighting_engine_presets return data @@ -41,3 +42,4 @@ def load_sm64_repo_settings(scene: Scene, data: dict[str, Any]): sm64_props.compression_format = data.get("compression_format", sm64_props.compression_format) sm64_props.force_extended_ram = data.get("force_extended_ram", sm64_props.force_extended_ram) sm64_props.matstack_fix = data.get("matstack_fix", sm64_props.matstack_fix) + sm64_props.lighting_engine_presets = data.get("lighting_engine_presets", sm64_props.lighting_engine_presets)