New Addon: Import Autodesk .max #105013
@ -54,6 +54,8 @@ MATSHINESS = 0xA040 # Specular intensity of the object/material (percent)
|
||||
MATSHIN2 = 0xA041 # Reflection of the object/material (percent)
|
||||
MATSHIN3 = 0xA042 # metallic/mirror of the object/material (percent)
|
||||
MATTRANS = 0xA050 # Transparency value (100-OpacityValue) (percent)
|
||||
MATXPFALL = 0xA052 # Transparency falloff ratio (percent)
|
||||
MATREFBLUR = 0xA053 # Reflection blurring ratio (percent)
|
||||
MATSELFILLUM = 0xA080 # # Material self illumination flag
|
||||
MATSELFILPCT = 0xA084 # Self illumination strength (percent)
|
||||
MATWIRE = 0xA085 # Material wireframe rendered flag
|
||||
@ -706,6 +708,7 @@ def make_material_chunk(material, image):
|
||||
material_chunk.add_subchunk(make_percent_subchunk(MATSHIN2, wrap.specular))
|
||||
material_chunk.add_subchunk(make_percent_subchunk(MATSHIN3, wrap.metallic))
|
||||
material_chunk.add_subchunk(make_percent_subchunk(MATTRANS, 1 - wrap.alpha))
|
||||
material_chunk.add_subchunk(make_percent_subchunk(MATXPFALL, wrap.transmission))
|
||||
material_chunk.add_subchunk(make_percent_subchunk(MATSELFILPCT, wrap.emission_strength))
|
||||
material_chunk.add_subchunk(shading)
|
||||
|
||||
|
@ -361,6 +361,7 @@ def process_next_chunk(context, file, previous_chunk, imported_objects, CONSTRAI
|
||||
contextColor = None
|
||||
contextWrapper = None
|
||||
contextMatrix = None
|
||||
contextTransmission = None
|
||||
contextMesh_vertls = None
|
||||
contextMesh_facels = None
|
||||
contextMesh_flag = None
|
||||
@ -537,6 +538,7 @@ def process_next_chunk(context, file, previous_chunk, imported_objects, CONSTRAI
|
||||
contextWrapper.base_color = contextColor[:]
|
||||
contextWrapper.metallic = contextMaterial.metallic
|
||||
contextWrapper.roughness = contextMaterial.roughness
|
||||
contextWrapper.transmission = contextTransmission
|
||||
contextWrapper.specular = contextMaterial.specular_intensity
|
||||
contextWrapper.specular_tint = contextMaterial.specular_color[:]
|
||||
contextWrapper.emission_color = contextMaterial.line_color[:3]
|
||||
@ -905,6 +907,7 @@ def process_next_chunk(context, file, previous_chunk, imported_objects, CONSTRAI
|
||||
# If material chunk
|
||||
elif new_chunk.ID == MATERIAL:
|
||||
contextAlpha = True
|
||||
contextTransmission = False
|
||||
contextColor = mathutils.Color((0.8, 0.8, 0.8))
|
||||
contextMaterial = bpy.data.materials.new('Material')
|
||||
contextWrapper = PrincipledBSDFWrapper(contextMaterial, is_readonly=False, use_nodes=False)
|
||||
@ -993,6 +996,14 @@ def process_next_chunk(context, file, previous_chunk, imported_objects, CONSTRAI
|
||||
contextMaterial.blend_method = 'BLEND'
|
||||
new_chunk.bytes_read += temp_chunk.bytes_read
|
||||
|
||||
elif new_chunk.ID == MAT_XPFALL:
|
||||
read_chunk(file, temp_chunk)
|
||||
if temp_chunk.ID == PCTI:
|
||||
contextTransmission = float(read_short(temp_chunk) / 100)
|
||||
else:
|
||||
skip_to_end(file, temp_chunk)
|
||||
new_chunk.bytes_read += temp_chunk.bytes_read
|
||||
|
||||
elif new_chunk.ID == MAT_SELF_ILPCT:
|
||||
read_chunk(file, temp_chunk)
|
||||
if temp_chunk.ID == PCT_SHORT:
|
||||
@ -1010,6 +1021,7 @@ def process_next_chunk(context, file, previous_chunk, imported_objects, CONSTRAI
|
||||
contextWrapper.base_color = contextColor[:]
|
||||
contextWrapper.metallic = contextMaterial.metallic
|
||||
contextWrapper.roughness = contextMaterial.roughness
|
||||
contextWrapper.transmission = contextTransmission
|
||||
contextWrapper.specular = contextMaterial.specular_intensity
|
||||
contextWrapper.specular_tint = contextMaterial.specular_color[:]
|
||||
contextWrapper.emission_color = contextMaterial.line_color[:3]
|
||||
|
@ -18,7 +18,7 @@
|
||||
bl_info = {
|
||||
"name": "Sun Position",
|
||||
"author": "Michael Martin, Damien Picard",
|
||||
"version": (3, 5, 3),
|
||||
"version": (3, 5, 4),
|
||||
"blender": (3, 2, 0),
|
||||
"location": "World > Sun Position",
|
||||
"description": "Show sun position with objects and/or sky texture",
|
||||
|
@ -78,7 +78,19 @@ class SUNPOS_OT_ShowHdr(bpy.types.Operator):
|
||||
@classmethod
|
||||
def poll(self, context):
|
||||
sun_props = context.scene.sun_pos_properties
|
||||
return sun_props.hdr_texture and sun_props.sun_object is not None
|
||||
if sun_props.sun_object is None:
|
||||
self.poll_message_set("Please select a Sun object")
|
||||
return False
|
||||
if not sun_props.hdr_texture:
|
||||
self.poll_message_set("Please select an Environment Texture node")
|
||||
return False
|
||||
|
||||
nt = context.scene.world.node_tree.nodes
|
||||
env_tex_node = nt.get(context.scene.sun_pos_properties.hdr_texture)
|
||||
if env_tex_node is None or env_tex_node.type != "TEX_ENVIRONMENT":
|
||||
self.poll_message_set("Please select a valid Environment Texture node")
|
||||
return False
|
||||
return True
|
||||
|
||||
def update(self, context, event):
|
||||
sun_props = context.scene.sun_pos_properties
|
||||
|
@ -116,6 +116,7 @@ class SunPosProperties(PropertyGroup):
|
||||
description="Enter coordinates from an online map",
|
||||
get=get_coordinates,
|
||||
set=set_coordinates,
|
||||
default="00°00′00.00″ 00°00′00.00″",
|
||||
options={'SKIP_SAVE'})
|
||||
|
||||
latitude: FloatProperty(
|
||||
|
Loading…
Reference in New Issue
Block a user