Files
yawn/vendor/fxnode/examples/blender/nodes/shader/principled-bsdf.ts
T

155 lines
3.2 KiB
TypeScript

import type { FxNodeDefinition } from "@lib/composition/index.js";
export const principledBsdfNode = [
"fxnode.shader.principled-bsdf",
{
version: 1,
title: "Principled BSDF",
behavior: "standard",
style: "shader",
parameters: {},
sockets: {
"base-color": {
title: "Base Color",
direction: "input",
type: "color",
maxIncomingLinks: 1,
visible: true,
value: {
type: "color",
default: {
kind: "color",
value: [0.8, 0.8, 0.8, 1],
},
minimum: 0,
maximum: 1,
},
showValue: true,
},
metallic: {
title: "Metallic",
direction: "input",
type: "float",
maxIncomingLinks: 1,
visible: true,
value: {
type: "number",
default: {
kind: "number",
value: 0,
},
minimum: 0,
maximum: 1,
},
showValue: true,
},
roughness: {
title: "Roughness",
direction: "input",
type: "float",
maxIncomingLinks: 1,
visible: true,
value: {
type: "number",
default: {
kind: "number",
value: 0.5,
},
minimum: 0,
maximum: 1,
},
showValue: true,
},
ior: {
title: "IOR",
direction: "input",
type: "float",
maxIncomingLinks: 1,
visible: true,
value: {
type: "number",
default: {
kind: "number",
value: 1.5,
},
minimum: 1,
maximum: 1000,
},
showValue: true,
},
alpha: {
title: "Alpha",
direction: "input",
type: "float",
maxIncomingLinks: 1,
visible: true,
value: {
type: "number",
default: {
kind: "number",
value: 1,
},
minimum: 0,
maximum: 1,
},
showValue: true,
},
normal: {
title: "Normal",
direction: "input",
type: "vector",
maxIncomingLinks: 1,
visible: true,
value: {
type: "vector",
default: {
kind: "vector",
value: [0, 0, 0],
},
},
showValue: false,
},
bsdf: {
title: "BSDF",
direction: "output",
type: "shader",
maxIncomingLinks: 0,
visible: true,
value: null,
showValue: false,
},
},
ui: [
{
kind: "socket",
socket: "base-color",
},
{
kind: "socket",
socket: "metallic",
},
{
kind: "socket",
socket: "roughness",
},
{
kind: "socket",
socket: "ior",
},
{
kind: "socket",
socket: "alpha",
},
{
kind: "socket",
socket: "normal",
},
{
kind: "socket",
socket: "bsdf",
},
],
muteBypass: [],
migrations: [],
},
] as const satisfies readonly [string, FxNodeDefinition];