Hacker News new | ask | show | jobs
by npolet 3204 days ago
Yet again I'm amazed by blenders progress. I've been a 'hobby 3d artist' for the past decade and find it incredibly useful in my full time job (front end dev). Blender to me is a shining example of an open source project that seems to constantly improve and give the proprietary apps like 3ds max and maya a run for their money.

While the learning curve for blender can be fairly steep, once you get over that hump, it's an absolute joy to use. A lot of people struggle with the UI, but once you 'get it', it becomes an incredibly fluid and well thought out interface. It still has it's quirks, but as far as 3D packages go, the UI is actually really great.

This update adds lots of things that I have been waiting for. Shadow catchers with cycles has always been possible, but it required a fairly obtuse method to get there. The denoiser for cycles as well in an incredibly nice feature and works incredibly well. The PBR shader is also a real joy to use. Coupled with a decent set of textures, PBR shaders make shading a seriously fun activity. Although it's nothing new (in the industry) it's really nice to have it in blender.

A real asset to any designers toolkit.

5 comments

I still don't "Get" it, but once someone told me it was a "modal gui" (as a vim user) it clicked a bit more for me, that helps, but I don't have an artistic bone in my body, and fail to pick up blender once a year. (that said, I have no reason to use it, save maybe toying with 3d printing meshes)
Another good reason to use Blender is video editing. You can edit the videos, and even create 2D graphics to lay over the video.
As the other open source video editing software were so bad, and Blender had a so good reputation, I tried to use it to edit my family videos. But the interface were so weird for a casual user that I quit. This was one of the reasons that I came back to Windows after decades.
There are NO good Open Source video editing software made for Linux, and I'm pretty confident about this.

I'm currently using shotcut, it's buggy and just work, not great. With it, you can crop the video, change color, do some easy compose it etc, but that's almost all.

If you have a good computer, you can try DaVinci Resolve. Though it's not an open source software, but it will give you After Effect+ level experience.

I had some experience with 3ds Max & After Effect, and I tried Blender few days ago (For Editing Video and 3D modeling). What I found is that the UI of Blender is a chaotic torment even for people like me. It even cause some hard time when all I want is just to "close" (Or Shrink) a panel.

I'm not saying Blender is a bad software, I just hoping Blender can have a more organized, focused and solid UI. Then it will be friendlier for greens who want to learn it.

> "There are NO good Open Source video editing software made for Linux"

What about PiTiVi? Is it one of the video editors you've tried?

http://www.pitivi.org/

http://www.pitivi.org/?go=tour

Yes, I tried. But it was 5 years ago. And the excellent free (as beer) Hit Film Express got me.
OpenShot is pretty good. Good enough that when they finally ported it to OSX I switched to it from iMovie.
I tried it the other day and couldn't find a way to make precise cuts. You can move frame by frame, but I didn't succeed in cutting at the current position. I switched to AviDemux. The video editing I've done in the past has been mostly with ffmpeg, i.e. command line and scripts.
Wouldn't Resolve be closer to Premiere than After Effects? Having barely used resolve (my computer wasn't strong enough to mess with the 4k video I shot, and davinci didn't like the codec it was originally shot in) and with probably 25 hours in Premiere and After Effects, I could totally be wrong, but Premiere and Resolve felt more like editors, while AE was more for post effects and such.
Well, I don't have any experience on Premiere, After Effects is only one I can use for this comparison. So.
For those reading this post and wondering "what is it like to 'close (Or Shrink) a panel' in Blender?":

Here is a sketch of what Blender looks like by default:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  |                      |   B    |
  |                      +--------+
  |           C          |        |
  |                      |        |
  |                      |   D    |
  +----------------------+        |
  |           E          |        |
  +----------------------+--------+
A, B, C, D, and E are areas - rectangular subregions of the application window. There are three rules about the arrangement of areas in Blender:

  1. Areas are always rectangular
  2. Every pixel in the window belongs to exactly one area
  3. Every area is at least as tall as the height of a menu bar, and at least as wide as the height of a menu bar.
If you've used a tiling window manager before, then you're probably familiar with these rules and with the benefits of these rules. Areas always have a rectangular shape, so they are always laid out in a consistent way. Every pixel in the window belongs to an area, so no screen space is wasted. No part of the window has two areas, meaning that no area can ever be obscured by part of another area. And every area has a guaranteed minimum size, so you can never lose an area by accidentally shrinking its height or width to zero.

Because of these rules, some arrangements of areas are impossible. For example:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  | +---+                |   B    |
  | | F |                +--------+
  | +---+     C          |        |
  |                      |        |
  |                      |   D    |
  +----------------------+        |
  |           E          |        |
  +----------------------+--------+
This violates either the first or the second rule - area C must be rectangular (no holes!), and it cannot be covered by another area.

This is also not possible, because it would violate the same rules:

  +-------------------------------+
  |              A                |
  +-------------------+-----------+
  |                   |    B      |
  |                   +--+--------+
  |           C          |        |
  |                      |        |
  |                      |   D    |
  +----------------------+        |
  |           E          |        |
  +----------------------+--------+
This, however, is allowed:

  +-------------------------------+
  |              A                |
  +----------------+--------------+
  |                |      B       |
  |                +--------------+
  |       C        |              |
  |                |              |
  |                |      D       |
  +----------------+              |
  |       E        |              |
  +----------------+--------------+
You would accomplish this by placing you mouse cursor anywhere along the vertical line that separates C and E from B and D. The cursor would change to "<->". You would then hold down the left mouse button, drag to the left, and then release the left mouse button.

You could also do this:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  |                      |        |
  |                      |   B    |
  |           C          |        |
  |                      |        |
  |                      +--------+
  +----------------------+   D    |
  |           E          |        |
  +----------------------+--------+
...by placing your mouse cursor over the horizontal line that separates B from D, so that the cursor changes to the up-and-down arrows. Then, click the LMB, drag down, and release the LMB.

Besides changing the size of the currently-existing areas, you can also add new areas by dividing existing ones in two. For example:

  +-------------------------------+
  |              A                |
  +-----------+----------+--------+
  |           |          |   B    |
  |           |          +--------+
  |    C      |    F     |        |
  |           |          |        |
  |           |          |   D    |
  +-----------+----------+        |
  |           E          |        |
  +----------------------+--------+
This can be done by placing the mouse cursor over either the top or bottom edge of area C, so that the cursor changes to the up-and-down arrows. Then right-click. A menu will appear with two entries: "Split Area" and "Join Area". Select "split area", and a vertical line splitting area C will appear. As you move your cursor around, the line follows. If you move your cursor out of area C and into another area, the vertical line will follow into that area. When you click the LMB, area your cursor is over will be split into two, with the vertical border passing through where you clicked.

Horizontal divisions are, of course, also possible:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  |                      |   B    |
  |                      +--------+
  |           C          |   D    |
  |                      |        |
  |                      +--------+
  +----------------------+   F    |
  |           E          |        |
  +----------------------+--------+
Finally, you can reduce the number of areas by "joining" them. The only requirement for joining areas is that they must exactly share one edge. For example, this join is possible:

  +-------------------------------+     +-------------------------------+
  |              A                |     |              A                |
  +----------------------+--------+     +----------------------+--------+
  |                      |   B    |     |                      |        |
  |                      +--------+     |                      |        |
  |           C          |        | ->  |           C          |        |
  |                      |        |     |                      |   B    |
  |                      |   D    |     |                      |        |
  +----------------------+        |     +----------------------+        +
  |           E          |        |     |           E          |        |
  +----------------------+--------+     +----------------------+--------+
... because areas B and D exactly shared one edge. This join is done by placing your mouse cursor over the edge shared by areas B and D so that the cursor changes to the up-and-down arrows, right-clicking, and selecting "Join Area". Immediately, a gray overlay with an arrow in it will cover one of the two areas. If you move your cursor between areas B and D, the overlay will switch to the area your cursor is over.[0] This overlay makes it very clear which area will be enlarged to take over the other area. When the overlay covers area D, just click the left mouse button, and area D will be removed, and area B will be enlarged to fill its place.

One more note about joining areas. With the default layout, only area C can be joined to area E:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  |                      |   B    |
  |                      +--------+
  |           C          |        |
  |                      |        |
  |                      |   D    |
  +----------------------+        |
  |           E          |        |
  +----------------------+--------+
However, by moving the border between areas B, and D, we can get this layout:

  +-------------------------------+
  |              A                |
  +----------------------+--------+
  |                      |        |
  |                      |        |
  |           C          |   B    |
  |                      |        |
  |                      |        |
  +----------------------+--------+
  |           E          |   D    |
  +----------------------+--------+
In this layout, either area C or area D can be joined with area E.

  +-------------------------------+    +-------------------------------+    +-------------------------------+
  |              A                |    |              A                |    |              A                |
  +----------------------+--------+    +----------------------+--------+    +----------------------+--------+
  |                      |        |    |                      |        |    |                      |        |
  |                      |        |    |                      |        |    |                      |        |
  |           C          |   B    | -> |                      |   B    | or |           C          |   B    |
  |                      |        |    |           C          |        |    |                      |        |
  |                      |        |    |                      |        |    |                      |        |
  +----------------------+--------+    |                      +--------+    +----------------------+--------+
  |           E          |   D    |    |                      |   D    |    |              D                |
  +----------------------+--------+    +----------------------+--------+    +-------------------------------+
Wonderful and thorough explanation, thank you!
I went through and evaluated all of the commonly mentioned open source video editors recently.

The only one that actually seemed usable was kdenlive.

Openshot, Shotcut etc. were all unusable for one reason or another.

I recently tried out Kdenlive and was very impressed.
I'm not sure what software you've tried, but I've found Kdenlive to be pretty good for video editing. It's best if you can use a recent version though, old versions that some LTS distributons picked up were not great.

https://kdenlive.org

The issue I ran into with Kdenlive was that I couldn't figure out how to cut within a clip without saving to a separate file.

I don't have much experience with Kdenlive or video editing in general but am looking for an Audacity-like tool that can slice out useless portions of longer videos (and also mute sections of audio). For now I use ffmpeg on the command line, but wrangling timestamps is cumbersome.

When I need to trim part of a clip in Kdenlive, I just use the Cut tool on the timeline and delete the portion I don't need. This doesn't create a separate file, it just tells it to only use a portion of the original file. It's been a while since I've used it though, so there might be an even easier way.

For muting you can apply the Mute audio effect for the required portion of the video.

Have a look at avidemux, which can even cut videos without re-encoding.
To use it as a video editor you really have to understand too much about computer graphics in general, and how Blender does things in particular.
I find that lightworks does a great job
Having used blender for video editing well after I became familiar with the tool, I actually found it incredibly intuitive and featureful than most open source alternatives.

Turns out editing video and audio is incredibly similar to 3d animation.

I sure hope I can create my name but on fire with smoke effects, it'll look great at the start of all my youtube videos.
I think you should first learn the hotkeys and shortcuts. That is what helped me a lot. There are a lot of cheatsheets online that you can use.

The GUI is easy to learn, but the keys are the key to blender.

It's all about the hotkeys. I'd say that you have to learn them in order to learn Blender with any sort of efficiency.
Aren't "modes" in UI a recognized bad practice? See: https://en.wikipedia.org/wiki/Mode_(computer_interface)#Mode... or read Jef Raskin writings.

How can a modal interface be "better" than a modeless one?

Modal interfaces are bad practice for software that will be used by people with minimal training, in a "pick up and go" fashion, but they are not necessarily counterproductive for skilled experienced users. Douglas Engelbart was a strong proponent of modal UI's and IIRC did extensive studies showing that although disadvantageous for "newbies", such interfaces could eventually yield higher productivity. I don't know how much of this was simply due to his having such a small and biased sample. It is also important to point out that his conceptualization involved using a 5-key chording keyboard in one hand and a 3-button mouse in the other for most routine operations, so the modes helped extend the number of operations that could be encoded. Anyway, as someone who uses emacs instead of vim, on a regular old keyboard, I really can't say personally.

EDIT: I suppose many people use a program like Blender with one hand on a mouse/trackball and the other on a 3d mouse, so the point about having different modes to get more versatility out of the same few buttons is still relevant. With that approach I use the radial menus plugin for Blender which makes changing modes pretty painless IMHO.

> It is also important to point out that his conceptualization involved using a 5-key chording keyboard in one hand and a 3-button mouse

Don't forget the foot pedals!

Blender is definitely not modal in the Raskin sense. It extensively uses "quasimodes", but so do Raskin's own designs. That or the different view layouts mentioned by another commenter may have caused the confusion.
Modes are essential to complex, specialized software like this. As an audio engineer with vast experience in different DAW applications, take away my modes and take away all semblance of my productivity. :)
I think it's more of a separate workspace layout for different tasks. i.e. one "mode" for modeling another for rigging and yet another for animating.
It's not just a workspace layout, it does have those but they're separate from the modes. Different modes (object mode, edit mode, sculpt mode, texture paint mode, weight paint mode, etc.) all have different hotkeys and in many cases have functionality that aren't available at all in the other modes. There are some conventions shared across modes, like G/R/S hotkeys for move/rotate/scale, or X to delete things. But the majority of blender's operations are mode specific.

If you're in one of the painting modes, F is the hotkey to change brush size. But you can't add faces in the painting modes.

If you're in edit mode, F will create a face from the selected vertices or edges. The concept of a brush doesn't exist here.

If you're in object mode, F doesn't do anything.

For another, I is "Inset Face" in edit mode, but "Insert Keyframe Menu" in object mode. This one is a bit different, because the keyframe menu is actually available in any mode and it just doesn't have a hotkey unless you're in object mode. But like the other mesh editing tools, Inset Face only exists while you're in edit mode.

Screenshots for reference:

Modes https://i.imgur.com/nmKeP2f.png

Workspace layouts https://i.imgur.com/7g61twc.png

Step 1: Create a bunch of simple primitives that represent a sculpture of your model. Generally speaking: squares and triangles.

Step 2: Add colors and textures to the model. Textures are 2d images mapped to the squares and triangles you made in step 1. With proper care, you can make triangles and squares look "smooth and circular" with proper shading effects.

Step 3: Simplify your model into "bones", which can deform the model with fewer control points. For example, you can create a "neck" bone which moves all of the polygons that represent the head. Bone modeling is itself a very intricate process that takes a lot of practice.

Step 4: Bone models are far easier to animate. Move bones around, instead of polygons. Instead of selecting the "head" each time, you simply select "the neck bone" to move things around.

Step 5: Lather, rinse, repeat for every object in the scene.

Also, great artists steal:

Find a work of Kandinsky or Picasso you like and try to transfer it into blender using the same geometry shapes the artist is using.

Then add your own twists , extra light nodes / special displacement textures / flying haiku texts going across screen at appropriate times hah

Or more seriously, use "MakeHuman" to make a base human model, and then modify it to fit your needs.

http://www.makehuman.org/download.php

There's lots of ways to "steal legitimately". In this case, the human model and bones model are all set.

What do you use Blender for in your job?
Typically I use it to create illustration style renders that I use within pages. I create a lot of complex isometric diagrams for my current job that are interactive. So I create them in blender, chop them up, then load them in with WebGL or just slice them into image layers that allow me to create interactive elements.
Back before mobile interfaces went flat (the skeuomorphic days) people were rendering out tons of assets for interfaces. The pendulum will eventually swing back in that direction...
I'm not him. But as a front-end too my guess can be a few: * WebGL and 3D Models * Creation of Assets for web * Maybe something more abstract like prototypes, flow control, etc
Sick abstract backgrounds on internal wiki pages / out of this world renderings of office memes to keep morale high and people in good spirits
From one Blender user to another; learning curve is not really steep compared to 3DS and Maya. Not noticeably steeper at least.
I don't agree. For starters, the more traditional UI of Maya is easier to grasp than Blender's. That's quite a difference that makes the learning process much easier for Maya.
Yup, both max and maya have such a 'traditional' (for lack of a better term) kind of UI - it's (for the most part) intuitive, whereas blender's just appears to be spread out all around the sides of the screen and it just feels like a mess. Even the basic aspect of interacting with the viewports is weird, why is there a crosshair, why can't I drag things around; what the hell is this weird lasso thing?
Blender is definitely odd and quirky compared to Maya or Max. All of them have a steep learning curve, but Blender is weird on top of being complicated.
Is Blender close enough to a 3D CAD app that I could use it to build my models for 3D printing?

I've used SketchUp a lot, but it has many limitations. Other 3D modelers are either proprietary, or don't seem to provide enough automation to justify moving away from SketchUp.

I have used blender for some 3d printing projects. Shapeways has several articles describing the process and highlighting some of the issues (eg https://www.shapeways.com/tutorials/prepping_blender_files_f...).

However, while I think it's very good for animation/rendering purposes, it is missing a lot of things you might expect in a full CAD app. I use it to build meshes and then describe how to deform it. It has some procedural constraints. I recall it has some snapping behavior, and googling around shows some plugins that try to add some of this missing CAD functionality, but I can't really judge their success.

Maybe see also - https://blender.stackexchange.com/questions/53293/is-blender...

Yes. It is a fully capable 3D authoring tool.
Would you use it for your 3D print projects? (assuming you did any 3D printing)
I've personally considered it. If you're more of a visual modeller person, it very well might be ideal.

If you're a programmer, however, consider looking into OpenSCAD or OpenJSCAD:

http://www.openscad.org/

https://openjscad.org/

Not only are they more programmer friendly, but making parametric models should be much easier as a side-effect.

I do use it for 3d printing projects. It's far from ideal, and doing anything precise in blender means having to learn your way around the various snap tools and the like. But it does work, and work nicely once you learn how to.

That said: you should probably learn some other programs too. Personally I use openscad and solvespace too depending on the use case.

How does it compare to Modo?

And also: Why is there "render noise?"

The cycles render is a pseudo-random path tracer, so the less samples are taken the higher the random noise. Increasing the samples and some other tweaking reduces the noise significantly, but also takes much more time. Denoising the rendered image can produce better visual IQ for less render time.

See https://docs.blender.org/manual/de/dev/render/cycles/optimiz...

compare in what area?