Mẫu Hạt GPU · compute shader · chụp trong Scene View, WebGPU
Scenegraph Studio 0.1
Node cho three.js
Dựng cảnh 3D cho web bằng network nối dây: geometry, vật liệu TSL, hậu kỳ, compute, animation và vật lý. Xem ngay trong viewport WebGPU, xuất ra mã three.js sạch.
Bản 0.1.0 đang kiểm thử, chưa phát hành công khai · hiện miễn phí
Sản phẩm
Một app, một máy chủ, và mã của bạn
Studio là nơi dựng cảnh. Máy chủ cộng tác là tùy chọn, bạn tự chạy. Thứ bạn mang đi là mã three.js thuần, không phụ thuộc vào Studio.
Desktop · Windows, macOS, Linux Scenegraph StudioApp dựng cảnh bằng node, chạy offline. Đủ năm context: Scene, Material, Post, Compute, Game. Miễn phí trong giai đoạn thử nghiệm.
Tự host · Node.js Collab ServerNhiều người sửa cùng một project. Phòng có chủ, mã mời, quyền biên tập hoặc chỉ xem; thay đổi được hợp nhất theo từng tham số.
Đầu ra · three.js r186 Mã xuất raMỗi project thành một file JavaScript dùng three/webgpu và three/tsl, kèm animation và logic game nếu có. Hoặc xuất glTF/GLB.
Dành cho
Ai dùng Scenegraph Studio
Cùng một graph, mỗi người bắt đầu từ một context khác nhau.
Tính năng
Có gì trong 0.1
Mọi ảnh trên trang được chụp từ chính bản dựng của Studio. Renderer là WebGPU; máy không có WebGPU tự chuyển sang WebGL 2.
Procedural
Network View cho cả cảnh
Geometry, mesh, đèn, camera là node nối dây theo chiều dọc. 98 node scene được tạo từ mã nguồn three.js r186, nên Parameters có đúng và đủ tham số của class thật.
12 node modeling: Transform, Mirror, Array, Displace, Deform, Scatter…
Edit Mesh: chọn điểm, cạnh, mặt; extrude, inset, chia mặt, dissolve, tới 1 triệu điểm
Import ảnh, HDR, glTF; xuất glTF/GLB qua gltf-validator
/obj · mẫu Quả cầu phát sáng
TSL
Vật liệu không cần GLSL
677 node Three Shading Language: toán, noise, UV, thời gian, ánh sáng. Nối mx_noise_float qua mix vào colorNode là có vật liệu động.
Tab menu tìm theo tên, có nhóm và mô tả từ tài liệu TSL
Subgraph với Fn, If, Switch, Loop
296 hàm TSL được gọi thử tự động, không lỗi
/mat · mẫu Nghiên cứu vật liệu
Post
50 hiệu ứng hậu kỳ
Toàn bộ Post FX của three.js chạy được trên cả WebGPU và WebGL 2. Hiệu ứng cần depth, normal hay velocity được nối đầu vào bắt buộc tự động.
Bloom, AO, DOF, motion blur, outline, film, LUT… Pass có đầu ra phụ dùng lại ở node sau
/img · mẫu Post, render trong viewport
GPU
Compute và hạt
Buffer, kernel và mô phỏng là node như mọi node khác. Mẫu Hạt GPU dựng sẵn hai instancedArray , hai kernel và một simulation .
46 node compute Kết quả đi thẳng vào cảnh và hậu kỳ
/ch · mẫu Hạt GPU
Play
Game và vật lý
onKey nối vào applyForce , mesh nhận rigidBody . Bấm Play để chạy, Stop để trả cảnh về như cũ.
Vật lý Rapier 0.21, chỉ nạp khi cần
Va chạm hộp, cầu, viên nang, trụ, nón, convex hull; trimesh và heightfield cho vật tĩnh
Logic game đi kèm mã xuất ra và chạy giống nút Play
/gm · mẫu Game vật lý
Export
Mã three.js, không runtime riêng
Đây là mã xuất từ mẫu Quả cầu phát sáng ở trên. Tên biến theo tên node; chỉ tham số khác mặc định mới được ghi.
Pane Code cập nhật khi bạn nối dây Addon được import đúng đường dẫn three/addons Animation, compute, logic game xuất kèm khi project dùng
import * as THREE from 'three/webgpu' ;
import { time, oscSine, color, mix, pass, add } from 'three/tsl' ;
import { bloom } from 'three/addons/tsl/display/BloomNode.js' ;
const renderer = new THREE.WebGPURenderer ( { antialias: true } );
renderer.toneMapping = THREE.ACESFilmicToneMapping;
await renderer.init ();
// Material graph
const time1 = time;
const oscSine2 = oscSine ( time1 );
const color3 = color ( 0x1f6fff );
const color4 = color ( 0xff4d2e );
const mix5 = mix ( color3, color4, oscSine2 );
const meshStandardNodeMaterial6 = new THREE.MeshStandardNodeMaterial ( { roughness: 0.35 , metalness: 0.1 } );
meshStandardNodeMaterial6.colorNode = mix5;
// Scene graph (rút gọn: đèn và camera)
const sphereGeometry7 = new THREE.SphereGeometry ( 1 , 64 , 32 );
const mesh9 = new THREE.Mesh ( sphereGeometry7, meshStandardNodeMaterial6 );
// Post graph
const pass16 = pass ( scene12, perspectiveCamera13 );
const bloom17 = bloom ( pass16, 0.9 , 0.5 , 0.55 );
const add18 = add ( pass16, bloom17 );
const renderPipeline = new THREE.RenderPipeline ( renderer );
renderPipeline.outputNode = add18;
renderer.setAnimationLoop ( () => renderPipeline.render () );
Bỏ bớt 7 dòng khai báo đèn, scene và camera; các dòng còn lại giữ nguyên như app xuất
Quy trình
Dùng chung cho mọi context
Phần còn lại của một phần mềm desktop: animation, file, hoàn tác, bố cục pane.
Animation Keyframe cho tham số, kể cả tham số đã nối dây Dope sheet, Curves, tay cầm tangent Bezier Clip, timeline, fps tùy chỉnh; xuất glTF animation
File và hoàn tác File .sgstudio, Recent, click đúp để mở Tự lưu mỗi 30 giây, khôi phục sau khi tắt đột ngột 150 bước hoàn tác, còn nguyên sau khi đóng app
Desktop Pane kéo thả, đổi cỡ, phóng to (Ctrl+B) Preset Build, Viewport, Network, Code, Debug Báo bản mới và mở trang tải; không tự cài
Học
Bắt đầu với Scenegraph Studio
Mở app, chọn File ▸ New project rồi chọn một mẫu: đó là cách nhanh nhất để thấy các context nối với nhau. Tài liệu đi kèm từng bản phát hành.
Bắt đầu Giao diện, Tab menu, nối node, xem trong viewport.
File và cài đặt .sgstudio, tự lưu, Settings, phím tắt.
Xuất Mã three.js, glTF/GLB, cách dùng trong dự án.
Cộng tác Phòng có chủ, mã mời, chạy máy chủ của bạn.
Tài khoản và license Đăng nhập, mã license, dùng offline.
Giới hạn đã biết Những gì 0.1 chưa làm hoặc chưa kiểm chứng.
Tải về
Scenegraph Studio 0.1.0
Windows 64-bit, macOS Apple Silicon, Linux 64-bit. WebGPU khi máy hỗ trợ, tự chuyển sang WebGL 2 khi không.
Bản 0.1.0 đang kiểm thử, chưa phát hành công khai · hiện miễn phí