Comments (17)
Here is already something I was working on:
http://jsperf.com/threejs-canvasrenderer-improvements
from three.js.
Looks good!
Does it win a lot to have the empty in the same method? I mean, maybe just add3Points()
/add4Points()
?
I don't think core classes are going to change any time soon. I think the API is starting to get quite stable. We change from time to time materials related stuff, but the rest I think it's quite stable.
from three.js.
`changed it
from three.js.
Uh, I see... :)
from three.js.
I updated the add3points algoritm to use ternary operators and now It only uses half the time in both ie9 and chrome 10. I didn't test in firefox opera or safari.
http://jsperf.com/threejs-canvasrenderer-improvements/2
from three.js.
Same results here. 60% faster on Chromium 8 and Firefox 4b7. Great! :)
from three.js.
I've implemented the optimisations gero3. It's hard to notice the improvements becase the bottleneck it's the context API, but everything seems correct :)
from three.js.
I know but those where the bottlenecks without the context API
from three.js.
Yeah for sure. Thanks!
Now we just need the browsers to accelerate context...
from three.js.
Actually the profiler in google chrome 10 seems to say they already have in the new chrome build because the bottlenecks seems to be around the render function and the projectscene function
from three.js.
Also the use of instanceof seems to be an overhead
http://jsperf.com/test-instanceof/2
from three.js.
typetest is 65% faster in my case (Chromium 8 / Ubuntu)
from three.js.
Interesting... but, although I'm not sure we're using this still, we lose all the prototype chain - instanceof checks for the object and the objects it extends.
gero3: Do you think all these optimisations will still be valid when stuff like crankshaft lands?
from three.js.
I think they will as I tested these optimizations already in Google chrome 10 which has already the crankshaft engine. Also the crankshaft does the same optimizations as the TraceMonkey, only on a different way which already is in FF4 for a longer time.
from three.js.
I don't think you use any of these anymore but it is indeed a problem if persons want to add their own material or rendererable by extending the working solution
from three.js.
The two functions that together use the most cpu are now:
29.95%
setupMatrices
22.40%
renderBuffer
(of 41% spend in total).
from three.js.
Okay I'll look into to improve them
from three.js.
Related Issues (20)
- FBX mesh breakage morphing MTIs HOT 1
- GLTFLoader addon is missing (import from examples?!) HOT 1
- Distortion of the model due to being too far from the origin HOT 2
- MapControls requires enableRotate=false on IOS HOT 1
- wrong z order when rendering material with alpha mode "BLEND" HOT 7
- It appears that the resources associated with DRACOLoader may not be completely released, leading to memory consumption issues HOT 4
- I wish an example for the outputStruct node HOT 3
- Adding postprocessing support to the three. js editor HOT 1
- WebGLRenderer.setSize cannot set properties of undefined (setting 'width') HOT 2
- Enhance target type for SpotLight and DirectionalLight HOT 1
- Build a grid through custom coordinates HOT 1
- `.equals` in class `Spherical` HOT 6
- FBXLoader loads default Unreal model with wrong rotation HOT 3
- Editor can't import glTF with .ktx2 textures HOT 1
- MRT needs a filter if there are several objects with different shader counts in the scene HOT 3
- File Export Whole Scene feature was removed 😨 HOT 2
- RectAreaLight passes through material HOT 6
- Editor: drop event in UIOutliner of ui.three.js not being call HOT 9
- Editor: Export GLB and GLTF fails to fetch HOT 2
- MeshToonMaterial support for WebGPU
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.js.