I think there are still cases where it won’t work right due to other libraries that might be involved, I’ve had recursion fail even on a new GPU with cuda 9.
Even if you can use recursion, it’s not usually a good idea since you’ll run into thread divergence problems.
> Unlike the Oculus Santa Cruz, the Oculus Go doesn’t include full motion controllers or futuristic inside-out tracking technology, which lets users walk around rooms with no external cameras. It allows you to rotate your head, but not lean or walk around. You can move its small controller like a laser pointer, but not fully mimic a virtual hand. It’s got basically the same features as Samsung and Oculus’ Gear VR, but as a dedicated piece of hardware, not a combination of smartphone and plastic shell.
So basically it's another one of those "turn your smartphone into VR" without needing the smartphone.
Gear does have a head model, you can tell really easily in pretty much every Gear/Go game by looking at parallax differences between near and far objects.
TLDR: "Overall, Go's performance should be on par with a Galaxy S8 or better."
It's pretty much the same hardware as a GearVR with an S8. The big difference is that it is physically larger, so the thermals are greatly improved. Thermal throttling may be the largest bottleneck in mobile VR.
There's no "6 degrees of freedom" here, just head orientation, much like the Gear VR and so on. It's significantly more basic than the Rift in that regard.
> Java calls references, works more like C/C++ pointer, rather than C++ reference
What makes you say this? You can't do pointer arithmetic on Java references, and the internal memory model is completely obscured. C++ and Java references look similar to and are accessed like variables. The major difference is that Java references can be reassigned, like a pointer, which is necessary in a language without true pointers.
In C++, references aren't objects (eg. they have no size and no address), they can't be stored in a vector, there's no way to operate on the reference itself, everything is transparently forwarded to its referent, there is always a referent.
In Java, a reference is a value, it can be stored in an ArrayList like a normal value, you can operate on the reference itself (reseating it, comparing two of them, comparing to null), there is not always a referent.
Java references are closer to C++ references than anything else. They're like pointers until you access/call them, at which point they're just objects. C++ references are identical, but the syntax is a bit more explicit.
It is a funny language feature to have when you think about it; it just so happens to be useful. References and pointers are distinct in languages that have both (C++), so not mixing the terms between languages is helpful. If Java programmers started referring to their variables as "pointers," because internally, that's more representative of what they are, I'd be a bit irked.
I would actively avoid that, but only because it confuses me.
That syntax loosely implies that removing the second d assignment would allow me to create new-but-altered dogs with alterDog(Dog), which isn't the case. If I wanted to use assignments like that, I would try to go fully immutable with factory methods that help me make slightly different, new dogs on the fly, and return them.
Am I correct in assuming you can only recurse when the recursion can be "unrolled" into a simple loop? In other words, no program flow structures.