Skip to content

TSL: check() param coord default value does not work. #30876

@linbingquan

Description

@linbingquan

Description

checker.coord has default value, but it can't work.

export const checker = /*@__PURE__*/ Fn( ( [ coord = uv() ] ) => {
const uv = coord.mul( 2.0 );
const cx = uv.x.floor();
const cy = uv.y.floor();
const result = cx.add( cy ).mod( 2.0 );
return result.sign();
} );

Reproduction steps

None

Code

import { checker, uv } from 'three/tsl';
import { BoxGeometry, Mesh, MeshBasicNodeMaterial, PerspectiveCamera, Scene, WebGPURenderer } from 'three/webgpu';

const scene = new Scene();
const aspect = window.innerWidth / window.innerHeight;
const camera = new PerspectiveCamera(50, aspect);
camera.position.z = 5;
const renderer = new WebGPURenderer({ antialias: true, alpha: true });
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

const geometry = new BoxGeometry();
const material = new MeshBasicNodeMaterial();

material.colorNode = checker(); // it can not work
// material.colorNode = checker(uv()); // it can work

const mesh = new Mesh(geometry, material);
scene.add(mesh);

renderer.render(scene, camera)

Live example

None

Screenshots

No response

Version

dev

Device

No response

Browser

No response

OS

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugTSLThree.js Shading Language

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions