4 ms·
As a mediocre frontend dev, this hits hard. I bought a bunch of texts to up my DS&A and college level math skills as I'd like to eventually be able to excecute
by imbnwa 5y ago
As a mediocre frontend dev, this hits hard. I bought a bunch of texts to up my DS&A and college level math skills as I'd like to eventually be able to excecute on 3D animation in the browser, but the books end up sitting on my desk as I consider I'm too old/there're too many people who _do_ have these skills already, etc.
- designcode 5y agoLearning by just consuming textbooks isn’t going to get you far with motivation. Pick a small goal and work towards that. Break the problem down in to small steps and find ways of solving each step that works best for you. You might find you don’t even need any of those textbooks.
- dorkwood 5y agoWhat sort of 3D animation do you want to do? If you're talking about shaders, you might be doing yourself a disservice with the bottom-up approach. In my opinion, learning to use math functions as tools rather than having a deep understanding of how they work is an equally valid approach. I know several great WebGL developers who really aren't very good at math. Consider the following definitions of the dot product: A) Algebraically, the dot product is the sum of the products of the corresponding entries of the two sequences of numbers. Geometrically, it is the product of the Euclidean magnitudes of the two vectors and the cosine of the angle between them. These definitions are equivalent when using Cartesian coordinates. In modern geometry, Euclidean spaces are often defined by using vector spaces. In this case, the dot product is used for defining lengths (the length of a vector is the square root of the dot product of the vector by itself) and angles (the cosine of the angle of two vectors is the quotient of their dot product by the product of their lengths). or B) The dot product takes two vectors as inputs, and returns a value of 1.0 if they're pointing the same direction, -1.0 if they're pointing in opposite directions, and 0.0 if they're perpendicular (as long as they're unit vectors of equal length). This function can be used for diffuse lighting calculations (i.e. is the light direction facing the same way as the surface?), checking if a point is in front of another point, etc. In my opinion, the second definition is much more useful for someone interested in 3D on the web, but it's something you won't find in math textbooks.
- wizzwizz4 5y ago(The second definition is also wrong – it's true only for unit vectors.)
- jimbob45 5y agoIf you express your vectors as scalar multiples of unit vectors, it works, right?
- Jensson 5y agoThen you'd still multiply those scalars. In your example you just replace 1 and -1 with the product of the vectors length.
- dorkwood 5y agoThat's why I wrote "as long as they're unit vectors" in my definition.
- imbnwa 5y ago> What sort of 3D animation do you want to do? This is perhaps where I go wrong, as I assume it's 'all the same thing'. I currently work on a web app that provides an editing interface for 2D animation with DOM objects (so, rectangles), so I have a notion of using matrices for camera transforms but the extension into 3D animation seems like another planet. I get what you're saying with the tool perspective, but I'm usually nervous about "how do I fix something if something breaks". In the past when I've spoken of what I work on with friends of friends who're professionals in other fields, and I'd frequently be asked about my 3D animation skills as they had some business idea they wanted to execute on. This experience was primarily my motivation to looking further into 3D rather than say gaming so gun to my head 3D modeling and editing would be the first stop. But the comments here have been helpful
- shane_b 5y ago3D demand is only growing because browsers haven’t been able to handle it until recently. Anecdotally, I develop webgl and the tooling is meh. Far from figured out and even harder if you want to port to React Native too. As far as math, some is required. But mostly understanding the relationship between position, velocity and acceleration for animations. As well as sin cos and tan for viewport and triangles. Don’t give up. Age doesn’t matter. Do a little a day.
- mywittyname 5y agoMath can be hard to learn independently. Luckily, the math for rudimentary 3d is pretty accessible and well documented. There are tons of quality libraries out there for doing linear transformations, so you likely won't need to learn the nuts & bolts unless you really want to. As a bonus, working in 3d is the best way to build an intuition for a lot of linear algebra subjects.
- noizejoy 5y agoJust keep looking for different niches until you find one that intrigues you enough to get into it without thinking about money. Maybe that niche isn’t even programming.
- d0gsg0w00f 5y agoNever measure yourself by others. Compare yourself to who you were yesterday. You'll always be happier with yourself than you were yesterday and eventually you'll look up and realize someone is looking up to you. This is especially relevant now as we have instant exposure to the best of the best of any field simply by opening a social media app.
- imbnwa 5y ago> Never measure yourself by others. Yeah this is something I definitely struggle with