Example:
import mset
baker = mset.findObject("Baker")
baker.loadPreset("All")
baker.getMap("Normals").enabled = True
texassemble cube -w 1024 -h 1024 -o cubemap.dds px.jpg nx.jpg py.jpg ny.jpg pz.jpg nz.jpg | |
texconv cubemap.dds -m 0 -y -f BC1_UNORM |
-- Open activeshade floater | |
actionMan.executeAction 0 "40701" | |
-- Close activeshade floater | |
-- https://help.autodesk.com/view/3DSMAX/2016/ENU/?guid=__files_GUID_DF068975_00B6_4CF9_B240_50B032C1B960_htm | |
CloseActiveShade() | |
-- Close activeshade floater (old version) | |
-- local children = UIAccessor.GetPopupDialogs() | |
-- for child in children do ( |
/* eslint-env photoshop */ | |
/** | |
* New 3D Layer from File. | |
* @param {String} modelFilepath Absolute path to the 3D file | |
* | |
* Examples: | |
* `addLayer3D('C:\\example\\scene.wrl');` | |
* `addLayer3D('C:\\example\\scene.dae');` | |
* `addLayer3D('C:\\example\\scene.obj');` |
# There is no easy way to identify a shader from a MaterialSubroutine, | |
# so this tries to guess from the list of fields. | |
# | |
# However it cannot distinguish between: | |
# - "Lambertian" or "Unlit" | |
# - "Horizon Occlusion" or "Mirror" or "Blinn-Phong" | |
def getShaderId(material, subroutineId): | |
subroutine = material.getSubroutine(subroutineId) |
-- Reads the 88x88 thumbnail from Material Editor for an arbitrary material. | |
-- Note that it renders faster when the material editor is closed, | |
-- so you could call `MatEditor.Close()` first. | |
-- | |
-- Parameters: | |
-- mat: a material instance (StandardMaterial, Universal_Material, etc..) | |
-- | |
-- Returns: | |
-- a Bitmap or `undefined` | |
-- |
import mset | |
# Smarter "findMaterial": doesn't print a message in the console | |
# or throw an error when the object to find doesn't exist. | |
def getMaterial(name, createIfNotFound=False): | |
found = None | |
objs = mset.getAllMaterials() | |
for obj in objs: | |
if obj.name == name: | |
found = obj |
Materials are composed of shader blocks, each block has multiple subroutine variants.
Shader blocks:
This focuses on generating the certificates for loading local virtual hosts hosted on your computer, for development only.
Do not use self-signed certificates in production ! For online certificates, use Let's Encrypt instead (tutorial).
{ | |
"version": "0.2.0", | |
"configurations": [ | |
{ | |
"name": "Example", | |
"type": "node", | |
"request": "launch", | |
"runtimeExecutable": "node", | |
"runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"], |