mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2024-11-20 04:08:20 +01:00
update ShaderPlayground
This commit is contained in:
parent
52e24e9b2b
commit
211ccde11f
@ -4,6 +4,7 @@ Playground for working with Open GL shader language, the sharder is rendered
|
|||||||
with the Three.js library
|
with the Three.js library
|
||||||
|
|
||||||
## Change logs
|
## Change logs
|
||||||
|
- v0.0.3-a: reset texture when open new file
|
||||||
- v0.0.2-a:
|
- v0.0.2-a:
|
||||||
- Remove GLSLX, use the default WEBGL API for shader compiling
|
- Remove GLSLX, use the default WEBGL API for shader compiling
|
||||||
- Allow save/open shader source code to/from file (JSON)
|
- Allow save/open shader source code to/from file (JSON)
|
||||||
|
@ -4,6 +4,7 @@ Playground for working with Open GL shader language, the sharder is rendered
|
|||||||
with the Three.js library
|
with the Three.js library
|
||||||
|
|
||||||
## Change logs
|
## Change logs
|
||||||
|
- v0.0.3-a: reset texture when open new file
|
||||||
- v0.0.2-a:
|
- v0.0.2-a:
|
||||||
- Remove GLSLX, use the default WEBGL API for shader compiling
|
- Remove GLSLX, use the default WEBGL API for shader compiling
|
||||||
- Allow save/open shader source code to/from file (JSON)
|
- Allow save/open shader source code to/from file (JSON)
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7,7 +7,7 @@
|
|||||||
"author": "Xuan Sang LE",
|
"author": "Xuan Sang LE",
|
||||||
"email": "mrsang@iohub.dev"
|
"email": "mrsang@iohub.dev"
|
||||||
},
|
},
|
||||||
"version": "0.0.2-a",
|
"version": "0.0.3-a",
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"iconclass": "bi bi-lightbulb-fill",
|
"iconclass": "bi bi-lightbulb-fill",
|
||||||
"mimes": [
|
"mimes": [
|
||||||
|
Binary file not shown.
@ -213,7 +213,6 @@ namespace OS {
|
|||||||
{
|
{
|
||||||
return this._filehandle;
|
return this._filehandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
read() {
|
read() {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
if (this._filehandle === undefined) {
|
if (this._filehandle === undefined) {
|
||||||
@ -383,7 +382,10 @@ namespace OS {
|
|||||||
constructor(canvas: HTMLCanvasElement)
|
constructor(canvas: HTMLCanvasElement)
|
||||||
{
|
{
|
||||||
this.textures = [];
|
this.textures = [];
|
||||||
this.renderer = new THREE.WebGLRenderer({canvas});
|
this.renderer = new THREE.WebGLRenderer({
|
||||||
|
canvas:canvas,
|
||||||
|
alpha: true
|
||||||
|
});
|
||||||
this.renderer.autoClearColor = false;
|
this.renderer.autoClearColor = false;
|
||||||
this.clock = new THREE.Clock();
|
this.clock = new THREE.Clock();
|
||||||
this.camera = new THREE.OrthographicCamera(
|
this.camera = new THREE.OrthographicCamera(
|
||||||
@ -394,12 +396,12 @@ namespace OS {
|
|||||||
-1, // near,
|
-1, // near,
|
||||||
1, // far
|
1, // far
|
||||||
);
|
);
|
||||||
|
this.needupdateTexture = false;
|
||||||
this.scene = new THREE.Scene();
|
this.scene = new THREE.Scene();
|
||||||
const plane = new THREE.PlaneGeometry(2, 2);
|
|
||||||
const material = new THREE.MeshBasicMaterial({
|
const material = new THREE.MeshBasicMaterial({
|
||||||
color: 'white',
|
color: 'white',
|
||||||
});
|
});
|
||||||
this.needupdateTexture = false;
|
const plane = new THREE.PlaneGeometry(2, 2);
|
||||||
this.mesh = new THREE.Mesh(plane, material);
|
this.mesh = new THREE.Mesh(plane, material);
|
||||||
this.scene.add(this.mesh);
|
this.scene.add(this.mesh);
|
||||||
this.uniforms = {
|
this.uniforms = {
|
||||||
@ -411,6 +413,7 @@ namespace OS {
|
|||||||
|
|
||||||
this.ani_request_id = requestAnimationFrame(() => this.viewport_render());
|
this.ani_request_id = requestAnimationFrame(() => this.viewport_render());
|
||||||
}
|
}
|
||||||
|
|
||||||
private viewport_render(): void
|
private viewport_render(): void
|
||||||
{
|
{
|
||||||
if(this.needupdateTexture)
|
if(this.needupdateTexture)
|
||||||
@ -426,10 +429,6 @@ namespace OS {
|
|||||||
catch(e)
|
catch(e)
|
||||||
{
|
{
|
||||||
console.error(e);
|
console.error(e);
|
||||||
const material = new THREE.MeshBasicMaterial({
|
|
||||||
color: 'white',
|
|
||||||
});
|
|
||||||
this.mesh.material = material;
|
|
||||||
}
|
}
|
||||||
this.ani_request_id = requestAnimationFrame(() => this.viewport_render());
|
this.ani_request_id = requestAnimationFrame(() => this.viewport_render());
|
||||||
}
|
}
|
||||||
@ -458,13 +457,16 @@ namespace OS {
|
|||||||
{
|
{
|
||||||
if(["u_resolution", "u_time", "u_mouse"].indexOf(key) === -1)
|
if(["u_resolution", "u_time", "u_mouse"].indexOf(key) === -1)
|
||||||
{
|
{
|
||||||
delete this.uniforms[key];
|
this.uniforms[key] = new THREE.MeshBasicMaterial({
|
||||||
|
color: 'black',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(const v of this.textures)
|
for(const v of this.textures)
|
||||||
{
|
{
|
||||||
this.uniforms[v.name] = {value: v.texture};
|
this.uniforms[v.name] = {value: v.texture};
|
||||||
}
|
}
|
||||||
|
console.log(this.uniforms);
|
||||||
}
|
}
|
||||||
apply_mat(fragment_shader:string, vertex_shader: string): void
|
apply_mat(fragment_shader:string, vertex_shader: string): void
|
||||||
{
|
{
|
||||||
@ -481,6 +483,7 @@ namespace OS {
|
|||||||
const mat = new THREE.ShaderMaterial(opts);
|
const mat = new THREE.ShaderMaterial(opts);
|
||||||
|
|
||||||
this.mesh.material = mat;
|
this.mesh.material = mat;
|
||||||
|
console.log(this.uniforms);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,6 +576,7 @@ void main() {
|
|||||||
{
|
{
|
||||||
this.editor.renderer.textures = [];
|
this.editor.renderer.textures = [];
|
||||||
listview.data = this.editor.renderer.textures;
|
listview.data = this.editor.renderer.textures;
|
||||||
|
this.editor.renderer.needupdateTexture = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const loader = new THREE.TextureLoader();
|
const loader = new THREE.TextureLoader();
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"author": "Xuan Sang LE",
|
"author": "Xuan Sang LE",
|
||||||
"email": "mrsang@iohub.dev"
|
"email": "mrsang@iohub.dev"
|
||||||
},
|
},
|
||||||
"version": "0.0.2-a",
|
"version": "0.0.3-a",
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"iconclass": "bi bi-lightbulb-fill",
|
"iconclass": "bi bi-lightbulb-fill",
|
||||||
"mimes": [
|
"mimes": [
|
||||||
|
@ -335,7 +335,7 @@
|
|||||||
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShaderPlayground/README.md",
|
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShaderPlayground/README.md",
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"author": "Xuan Sang LE",
|
"author": "Xuan Sang LE",
|
||||||
"version": "0.0.2-a",
|
"version": "0.0.3-a",
|
||||||
"dependencies": ["libthreejs@0.0.129-r"],
|
"dependencies": ["libthreejs@0.0.129-r"],
|
||||||
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShaderPlayground/build/release/ShaderPlayground.zip"
|
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShaderPlayground/build/release/ShaderPlayground.zip"
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user