allotrop3 / four Goto Github PK
View Code? Open in Web Editor NEWFour: WebGL made easier -
Home Page: http://fourjs.io
License: MIT License
Four: WebGL made easier -
Home Page: http://fourjs.io
License: MIT License
Hello! The framework is looking great. I know you just released it, but it would be very helpful to have more full examples, including a GPGPU example and a ping-pong framebuffer example.
Thanks!
Integrate with GitHub PR's – https://circleci.com/
Use WeakMap
to manage private data within classes. Currently everything is exposed.
Help to manage code style in editors effectively.
Add effects state machine to enable and disable effects on a Renderer. Bloom and shadow mapping should use this for example.
Need to namespac shader package functions to easily associate functions to their shaders.
This is from your demo script in the readme. Obviously, syntax error, on the first line.
var view = new Four.Framebuffer(
var camera = new Four.PerspectiveCamera({
location: [40, 30, 40]
});
Add grunt tasks to build each layer of abstraction, bedrock, masonry, and rest each on top of the other. Developers would then be able to choose the level of control they need from the framework.
The work is there, but the results need to be stabilised and outcome "predictable".
Currently using the built in transform functions on the scene does not allow the lighting calculations to b computed correctly.
Hello, I'm new to computer generated images, just wondering where I can download the needed obj resource for the example? Could you provide a link to one of these (under an open license, I guess).
When I download Four and try to run any of the examples, they don't run. I see the message in the console "Four.Context is not a function".
The hosted example at http://allotrop3.github.io/four/ runs fine.
How about considering a trackball support to interact with the scene?
Hi. I'm really liking the simplicity of this library. I personally moved away from Three.js as it became a bit monolithic and I was only using a small subset of components. I see you have plans for expanding the library, and I just wanted to suggest that you keep each component as a different (namespaced) module, and perhaps use this repo to link to all of them. That could also improve user adoption in the form of contrib modules. Just a thought.
This list is updated as and when features are completed. Use this list to track whats coming:
Texture
UNPACK_FLIP_Y_WEBGL
setting to ImageTexture
only as this was resulting DataTexture
's being sampled incorrectly for GPGPU.gl.viewport
for OrthographicCamera
.Four.gl.STATIC_DRAW
, now only 'STATIC_DRAW'
required.require
to import modules to use ES6 import
.Attribute
locations out of bounds.ImageTexture
.Canvas
class to allow users to specify a selector from which to retrieve the canvas using querySelector
. This also instantiates the gl
context.primitive
property to Mesh
to allow for a default primitive to be set for meshes at render time. This can still be overridden at render time using the draw
method.flushable
property to Framebuffers
to flag if attachments are allowed to be cleared when done automatically at render time. The default behaviour is that framebuffer attachments are cleared at render time. Now the flushable
property can be set to prevent this.ParticleSystem
.Cloth
.Spring
.usage
property to meshes to specify dynamic meshes. Additional update
function that accepts an array of 3-component vectors of vertices to update the mesh with when using DYNAMIC_DRAW
.indexed
property to MeshLoader
to specify if loading the mesh should retain the use of indices for use with ELEMENT_ARRAY_BUFFER
.Mesh
if one is not provided - defaults to white.Camera
accepts a translucence
ShadowMapper
accepts an antialias
property to toggle this feature.Bundle
class to allow you to bundle your assets (e.g. ImageTexture
, MeshLoader
) into a single Promise
. Calling the ready
method on a bundle will then only fire when all the assets have loaded. e.g. bundle.ready(function() { ... })
. Bundles also provide a step
function that is called when an asset has loaded. A default percentage progress argument is provided to the callback function.Ease use of built-in elements, like PointLight
and ShadowMapping
, by auto generating GLSL dependencies when used.
If I insert
<script type="text/javascript" src="./lib/four/dist/four.js"></script>
in the <head>
, then the browser somehow fails to get hold of the canvas element.
Adding it at the end of the <body>
, as in your examples, seems to solve it.
By the way, how about being able to attach to a particular passed canvas element or by ID?
Add support for rudimentary augmented reality using WebRTC, OpenCV and AR markers.
It seems after extended use of the test demo, it becomes increasingly slower. Need to add a destructor to all entities to free resources better.
The README does not reflect the current state of the project well. Needs updating.
Explore the possibility of scoping shader packages with their own main
functions, and instead make them standalone programs i.e. program per effect. It would be easier to use...maybe.
Add details on contributing to the framework.
The build process is not complex enough to warrant a task runner like gulp. Could just use npm scripts:
browserify
using babelify
with .babelrc
, uglify
and bannerjs
browserlist
eslint
using StandardJSA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.