Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
913231e
first commit
NhatMinh2208 Jan 6, 2026
8c9f9b2
keep up-to-date with new ReferenceManager
pgrit Jan 6, 2026
2871eb0
using ComputeVisualizerColor()
NhatMinh2208 Jan 13, 2026
eb5f9be
fix extension building
NhatMinh2208 Jan 13, 2026
fdd7486
fixing material, mesh import function + modify cornell json file
NhatMinh2208 Jan 13, 2026
1fe4d31
reorganize the examples
pgrit Jan 15, 2026
5d22452
fix links
pgrit Jan 15, 2026
6d1ab19
support obj, fix material
NhatMinh2208 Jan 18, 2026
a48bbcc
fix the merge in Import.cs
NhatMinh2208 Jan 18, 2026
cfb7ac2
add json serialization support for PathGraphNode
NhatMinh2208 Jan 20, 2026
4e5e582
refactor PathGraph
NhatMinh2208 Jan 20, 2026
46bdbde
fix css loading issue
pgrit Jan 26, 2026
6652c68
importer: support obj, transformation matrix, baked emission
NhatMinh2208 Jan 27, 2026
75ba9da
add convertWorld to support envmap for importer
NhatMinh2208 Feb 1, 2026
1b19136
Importer: sp transmission, obj with mtl
NhatMinh2208 Feb 3, 2026
82e20cb
Importer: fix ply importer to support UV per vertex
NhatMinh2208 Feb 4, 2026
c874a00
export baked camera transformation for proper convention
NhatMinh2208 Feb 6, 2026
a510ef7
Importer: modify ply loader
NhatMinh2208 Feb 9, 2026
922bf07
PLY importer: correct header reader
NhatMinh2208 Feb 12, 2026
c05c4ca
remove comments in exporter/importer
NhatMinh2208 Feb 18, 2026
add66dc
Importer: fix .ply name reader
NhatMinh2208 Feb 23, 2026
348fd82
Assure staying in OBJECT MODE before import new scene
NhatMinh2208 Feb 27, 2026
7cae918
correct convention, remove comment, use Logger
NhatMinh2208 Mar 4, 2026
256e3b2
Fix thread conflict from cursor tracker
NhatMinh2208 Mar 16, 2026
007fc04
automatically register for addons
NhatMinh2208 Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion BlenderExtension/see_blender/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
from . import exporter, render_engine, material_ui, material, world
from . import exporter, render_engine, material_ui, material, world, importer

def register():
exporter.register()
render_engine.register()
material_ui.register()
material.register()
world.register()
importer.register()

def unregister():
exporter.unregister()
render_engine.unregister()
material_ui.unregister()
material.unregister()
world.unregister()
importer.unregister()
30 changes: 16 additions & 14 deletions BlenderExtension/see_blender/exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ def material_to_json(material, out_dir):
material.emission_color[1] * material.emission_strength,
material.emission_color[2] * material.emission_strength
)),
"emission_color": map_rgb(material.emission_color),
"emission_strength": material.emission_strength,
"emissionIsGlossy": material.emission_is_glossy,
"emissionExponent": material.emission_glossy_exponent
}
Expand Down Expand Up @@ -179,23 +181,23 @@ def export_camera(result, scene):
return

aspect_ratio = scene.render.resolution_y / scene.render.resolution_x
blend_cam2world = camera.matrix_world.copy()
blend_world2see_world = axis_conversion(
to_forward="Z",
to_up="Y",
).to_4x4()
def matrix_to_row_major_list(m):
return [
m[0][0], m[0][1], m[0][2], m[0][3],
m[1][0], m[1][1], m[1][2], m[1][3],
m[2][0], m[2][1], m[2][2], m[2][3],
m[3][0], m[3][1], m[3][2], m[3][3],
]

result["transforms"] = [
{
"name": "camera",
"position": [
-camera.location.x,
camera.location.z,
camera.location.y
],
# At (0,0,0) rotation, the Blender camera faces towards negative z, with positive y pointing up
# We account for this extra rotation here, because we want it to face _our_ negative z with _our_
# y axis pointing upwards instead.
"rotation": [
degrees(camera.rotation_euler.x) - 90,
degrees(camera.rotation_euler.z) + 180,
degrees(camera.rotation_euler.y)
],
"scale": [ 1.0, 1.0, 1.0 ]
"matrix": matrix_to_row_major_list((blend_world2see_world @ blend_cam2world).transposed())
}
]

Expand Down
Loading