Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3011ba9

Browse files
update
1 parent 510b32b commit 3011ba9

File tree

7 files changed

+37
-49
lines changed

7 files changed

+37
-49
lines changed

‎app/tests/useRawBlank/Playground.tsx‎

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,16 @@ import * as THREE from "three";
44
import { useFrame, useThree, extend } from "@react-three/fiber";
55
import {
66
createFxMaterialImpl,
7-
FxMaterialImplValues,
8-
useBuffer,
97
useFluid,
10-
useNoise,
118
useRawBlank,
129
} from "@/packages/use-shader-fx/src";
13-
import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
14-
import { useTexture } from "@react-three/drei";
1510

1611
const FxMaterialImpl = createFxMaterialImpl();
1712
extend({ FxMaterialImpl });
1813

1914
export const Playground = () => {
2015
const { size } = useThree();
2116

22-
const [mask] = useTexture(["/momo.jpg"]);
23-
2417
const fluid = useFluid({
2518
size,
2619
dpr: 0.25,
@@ -30,7 +23,7 @@ export const Playground = () => {
3023
size,
3124
dpr: 1,
3225
uniforms: {
33-
src: { value: newTHREE.Texture() },
26+
src: { value: fluid.velocity },
3427
},
3528
vertexShader: `
3629
void main() {
@@ -41,11 +34,17 @@ export const Playground = () => {
4134
uniform sampler2D src;
4235
void main() {
4336
vec2 uv = vUv;
44-
gl_FragColor = texture2D(src, uv);
37+
vec2 vel = texture2D(src, uv).rg;
38+
float len = length(vel);
39+
vel = vel * 0.5 + 0.5;
40+
41+
vec3 color = vec3(vel.x, vel.y, 1.0);
42+
color = mix(vec3(1.0), color, len);
43+
44+
gl_FragColor = vec4(color, 1.);
4545
}
4646
`,
4747
});
48-
rawShader.setValues({ src: fluid.texture });
4948

5049
useFrame((state) => {
5150
rawShader.render(state);

‎packages/use-shader-fx/src/hooks/useRawBlank/index.tsx‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,15 @@ import { ShaderWithUniforms } from "../../shaders/uniformsUtils";
66

77
export type RawBlankProps = HooksProps & ShaderWithUniforms;
88

9-
/**
9+
/**
1010
* type DefaultUniforms = {
1111
resolution: { value: THREE.Vector2 };
1212
texelSize: { value: THREE.Vector2 };
1313
aspectRatio: { value: number };
1414
maxAspect: { value: THREE.Vector2 };
1515
renderCount: { value: number };
1616
はデフォルトである
17-
1817
あとvaringでvUvつかえる
19-
};
20-
*/
21-
22-
/**
2318
* @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage
2419
*/
2520
export const useRawBlank = ({

‎packages/use-shader-fx/src/materials/core/BasicFxMaterial.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ export class BasicFxMaterial extends FxMaterial {
1919
super({
2020
uniformValues,
2121
materialParameters,
22-
uniforms: THREE.UniformsUtils.merge([
23-
BasicFxLib.BASICFX_VALUES,
24-
uniforms||{},
25-
]),
22+
uniforms: {
23+
...THREE.UniformsUtils.clone(BasicFxLib.BASICFX_VALUES),
24+
...uniforms,
25+
},
2626
});
2727

2828
this.defines = {

‎packages/use-shader-fx/src/materials/core/FxMaterial.ts‎

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,15 @@ export class FxMaterial extends THREE.ShaderMaterial {
3232
}: FxMaterialProps = {}) {
3333
super(materialParameters);
3434

35-
this.uniforms = THREE.UniformsUtils.merge([
36-
{
37-
resolution: { value: new THREE.Vector2() },
38-
texelSize: { value: new THREE.Vector2() },
39-
aspectRatio: { value: 0 },
40-
maxAspect: { value: new THREE.Vector2() },
41-
// 一部のFXでiterationをカウントする必要があるため
42-
renderCount: { value: 0 },
43-
},
44-
uniforms || {},
45-
]) as DefaultUniforms;
35+
this.uniforms = {
36+
resolution: { value: new THREE.Vector2() },
37+
texelSize: { value: new THREE.Vector2() },
38+
aspectRatio: { value: 0 },
39+
maxAspect: { value: new THREE.Vector2() },
40+
// 一部のFXでiterationをカウントする必要があるため
41+
renderCount: { value: 0 },
42+
...uniforms,
43+
} as DefaultUniforms;
4644

4745
this._setupShaders(vertexShader, fragmentShader);
4846

‎packages/use-shader-fx/src/materials/core/SamplingFxMaterial.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ export class SamplingFxMaterial extends BasicFxMaterial {
5252
fragmentShader,
5353
uniformValues,
5454
materialParameters,
55-
uniforms: THREE.UniformsUtils.merge([
56-
SAMPLINGFX_VALUES,
57-
uniforms||{},
58-
]),
55+
uniforms: {
56+
...THREE.UniformsUtils.clone(SAMPLINGFX_VALUES),
57+
...uniforms,
58+
},
5959
});
6060
}
6161

‎packages/use-shader-fx/src/materials/impl/BasicFxMaterialImpl.ts‎

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,11 @@ export const createBasicFxMaterialImpl = ({
5858
fragmentShader: props?.fragmentShader || fragmentShader,
5959
uniformValues: props?.uniformValues,
6060
materialParameters: props?.materialParameters,
61-
uniforms: THREE.UniformsUtils.merge([
62-
{
63-
src: { value: null },
64-
},
65-
uniforms || {},
66-
props?.uniforms || {},
67-
]),
61+
uniforms: {
62+
src: { value: null },
63+
...uniforms,
64+
...props?.uniforms,
65+
},
6866
});
6967

7068
this.type = BasicFxMaterialImpl.type;

‎packages/use-shader-fx/src/materials/impl/FxMaterialImpl.ts‎

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,11 @@ export const createFxMaterialImpl = ({
5050
fragmentShader: props?.fragmentShader || fragmentShader,
5151
uniformValues: props?.uniformValues,
5252
materialParameters: props?.materialParameters,
53-
uniforms: THREE.UniformsUtils.merge([
54-
{
55-
src: { value: DEFAULT_TEXTURE },
56-
},
57-
uniforms || {},
58-
props?.uniforms || {},
59-
]),
53+
uniforms: {
54+
src: { value: DEFAULT_TEXTURE },
55+
...uniforms,
56+
...props?.uniforms,
57+
},
6058
});
6159

6260
this.type = FxMaterialImpl.type;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /