For anyone interested I modernised the Three.js part of the marker based augmented reality library AR.js into a separate library called THREE AR. You can see it here https://github.com/JamesMilnerUK/THREEAR
I spent a nontrivial amount of time fiddling with arjs a couple of years ago so I know how disorganized that codebase is. congrats on wrestling it down but I'm curious why? what did you end up using the marker recognition for? I was trying to build a product around but ultimately decided that the markers are simply too awkward.
Three.js is insane, in a good way. Great abstraction of WebGL, very user friendly, and surprisingly few things that it can't do, as long as you're willing to think up some workarounds if something you're doing is super unique.
Question, what is the job market like for someone who is good with graphics programming? I'm not the best at math but I have struggled my way through linear algebra enough that with some practice I think I could be good at graphics programming. It'd certainly be a nice change of pace from programming CRUD forms for businesses.
A few years ago I went deep into an effort to make my own 3D animation company, all in-house software and everything from the ground up as much as possible.
I wanted to make the next Pixar, went far with the idea. Built a lot of working prototypes for the software we'd use all by myself. I built something I was pleased with and sought for a seed round and everything. I certainly don't know everything but I know way more than my fair share in graphics programming.
That's stellar experience and even with that I can't find any relevant graphics opportunities. I keep knocking on Pixar's door and they never have any open roles for the things we're looking for, and they never bite when they're open.
I work at Adobe now. Even here I'm not touching graphics :)
I'd love to hear someone else's take, because all I can conclude is that it's a saturated industry, it's a primarily academic industry (I don't have a degree), or I'm outside the industry network.
I think it would be pretty good. Less employers needing graphics programming, but a lot less candidates. I've been trying to hire someone with some graphics programming experience and so far have had a lot of trouble finding candidates in SF.
Personally, I think it’s quite good, especially if you’re flexible about where you work. Getting practice and being good at enough linear algebra to understand graphics transforms thoroughly will help a lot. There are graphics jobs in web app developement, mobile/console/pc game studios, game engines, scientific computing and HPC, medicine, movie studios, third party software renderers, and lots and lots in the Bay Area giants like Facebook, Google, Apple, AMD & Nvidia.
Construction industry. I'm having an upcoming project with making a web based 3d editor now, and before that I had an open offer for another construction industry 3d app. I also have a close friend who just finished a gig in the same line
One minor thing I noticed, is that capturing the mouse doesn't seem to be working on FF 66.0.3 on Linux (Manjaro). Not sure if that's because I have a dual screen setup. I guess on a single-screen setup I wouldn't notice if I had the browser in full screen.
Edit: There is a "lock mouse" button and I am an idiot. Thank you for reading, I will leave this here for posterity.
I’ve been through Three, Blend4web, aframe and verge3d. Babylon is the mot full featured and powerful for what I needed and it’s a pleasure to work with. Also forced me across to typescript which is a huge blessing.
Tried babylonjs week ago when they released new version. It was my first experience with 3D in the browser. But must say was very positive. I was able to do everything I wanted. The only bad was the lights shines through solid objects, so modeled room lamp is visible from the outside of the building :).
I didn't tried threejs though. So sorry for being bit of topic.
This behavior is expected. Without raytracing, lights are calculated locally for the object, without taking other objects into account. Unless you enable shadows, which add some computational cost but can prevent lights shining through walls/objects.
Jesus, this was a hit of nostalgia, back to my younger days when I'd download OpenGL tutorials on my 56k all night and dive into every line the next day. Thank you for this, got me peeking into it and remembering that 3D isn't a scary thing.
I sort of agree, but there are some function signatures that don’t match what’s in the code using @types/three, and mrdoob does not want to maintain this.
This gives a few @ts-ignore, but that’s not a big problem:)
It's possible, sure, but websockets still use TCP. TCP is not suitable for most online gaming due to TCP retrying lost packets and generally being slower, unlike UDP.
I was super excited to use Three.js and thought it would be easy to do what I wanted to do. What I wanted to do was load a simple .obj model and display it. Easy this was not. Hopefully someday they will merge in obj support from their demos code section to actually be part of the main Three.js code :/
This is a sadly common failing of many of the popular graphics libraries.
DirectX 9 and XNA were quite nice to work in, because they had model-loading code baked right in, albeit you had to use .x or .xnbs. Later versions took out that D3DX support, and you have to integrate something third-party like Assimp.
Yeah it's nuts. I've literally written an obj loader in opengl before staying up all night one night for a graphics assignment when I was in college, and yet it took me a week to get three.js to load an obj.
That is called aliasing. Three.js defaults to it, but you can turn antialiasing on by passing the option to the WebGLRenderer. I added it here to the example, line 10: https://codepen.io/anon/pen/XwgGrW
I think this page might be defaulting to a pixel ratio of 1. On mobile and high-dpi devices, that automatically makes the rendering appear much more aliased, in return for much faster rendering and much less memory usage.