1.0.5 • Published 5 years ago

the-only-one-pack-to-draw-light v1.0.5

Weekly downloads
2
License
GPL
Repository
-
Last release
5 years ago

好了方便人人有光画我做了个npm包

npm i -S the-only-one-pack-to-draw-light

你需要的唯一的一个包去CPU/GPU画光

npm.io

用法如下:

import { OPDrawLight } from 'the-only-one-pack-to-draw-light';

// 要用cpu绘图改为true
const useCPU = false;
const Kit = useCPU ? OPDrawLight.cpu : OPDrawLight.gpu;

const {
    SDF: {
        Circle,
        Plane,
        Rect,
    },
    render
} = Kit;

const c = new Circle({
    emissive: 20,
    reflectivity: 0,
    eta: 0,
}, { x: 0.5, y: -0.5 }, .05)
const i = new Circle({
    emissive: 0,
    reflectivity: .2,
    eta: 1.5,
}, { x: 0.5, y: 0.87 }, 0.2);
const j = new Plane({
    emissive: 0,
    reflectivity: .2,
    eta: 1.45,
}, { x: 0.5, y: .5 }, { x: .0, y: -1.0 });

// 渲染
render(document.getElementById('cv'), c.union(i.intersect(j)));

render参数

cv: HTMLCanvasElement, Canvas DOM
objs SDF树,根据SDF构建场景

SDF类型

  • Circle(props, center, radius)
  • Rect(props, center, theta, s)
  • Plane(props, pxy, normal)

SDF 方法

  • union: 合并两个光
  • intersect:交集两个光
  • subtract:减法两个光 (注意没有交换律)
opts: 渲染参数
  • N 默认64.0, 代表采样率,越高越准确
  • MAX_STEP 最大步进次数,默认'64',
  • MAX_DISTANCE 最大步进距离,根据场景实际情况定,默认'10.0'
1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago