Author Archives: Stig Atle steffensen

Switching to blender on all personal projects.

So, in December (2017) I decided to leave 3dsmax and switch to blender full time for all personal work. I’ve been using 3dsmax for half my life, and still use it at work (our whole workflow there is based around autodesk software), byt at home it enabled me to completely ditch window – which has been a goal of mine for a long time, it was only 3dsmax holding me back.

Blender has been on my radar for a long time, but I never found the proper motivation to learn it – since I was quicker in 3dsmax anyways. But now I have taken the time to really learn it, and the more I use it the more I like it. I’ve spent a lot of time learning the hotkeys, I use the default blender hotkeys, and that was the key for me to really learn it. Now after just a few personal projects I’m as fast as that as 3dsmax.

My next step is to focus a lot on plugin \ addon development for blender, this is where I struggle the most right now, I’m very good with the 3dsmax SDK, but not with blender’s API yet. I do however develop a exporter in python for a external render engine, and by doing that I learn what I need.

There are many advantages for using blender, but for me the biggest reasons are the following:

  • Fast development.
  • Open source \ free.
  • Cross platform.
  • Very easy to compile from source.
  • PBR workflow in viewport (EEVEE).
  • Great documentation \ online resources.
  • Great community – all about sharing.
  • Open roadmap and planning.

There are many reasons to leave 3dsmax behind, and for me it’s these things:

  • No more free home license when we have 3dsmax at work.
  • Subscription only (200 usd a month).
  • Removed Mentalray , and nvidia stops development of mentalray.
  • Added Arnold, which cannot even do texture baking.
  • Iray cannot do texture baking either.
  • Slow development and a focus that’s not clear.
  • Not cross-platform (the only one that’s windows only..).
  • Closed source.
  • Do not care about the ‘small’ users.

There is one downside as well, and that was stopping the development of LuxMax, that was the hardest project to put away and stop working on. It’s been my pet project for many years, and I’m very proud of it, but I decided to stop working on it since I do not use 3dsmax anymore and want to focus on blender.

LuxMax 3DsMax 2018 OpenCL

A big milestone has been reached in the LuxMax render plugin tonight, the OpenCL version now works, and uses the GPU. This means a huge speed improvement. Here is the first test render I did during the implementation. As you see the GPU sits at 46% in this example, I have tested other scenes too with 98% utilization. Also all OpenCL related settings can be tweaked in the render panel soon, this is what I’m going to fix next.

Expect a new release with OpenCL soon.

Maratis scene exporter for 3dsmax status update 2

A lot has happened since my last post, I’ve been working on the new exporter every day. I have come a long way, and soon it’ll be ready for beta release.

As I wrote in my previous post here I’m rewriting everything in c++, and now I have these things mostly ready.

You can download a zipped sample project that you can load into maratis (the scene these screenshots are taken from). If you then select some of the shapes, go to their ‘properties’ you can apply different animations that are defined.

Download the project files here testproject

Animation modifier
you can now add as many animation modifiers as you want, each of the has a ‘start, end’ range and a name for the animation. So if you have a character with walk\run\jump cycle you just add 3 modifiers, with their respective settings and it will export to maratis.

Physics modifier
You can add physics to any mesh, and specify the settings, maratis will then load the shape withe the selected settings applied.

Shader
With the shader you set maps for the different slots, each slots means something (I will describe this better then in the screenshot). Texunit1 means diffuse map and so on. I’m going to add the missing GUI items as well (specular color and such things).

Max scene:

Result (with some animation applied):

(The reason why this seems a bit more dim then in 3dsmax is because the specular parameter is not done yet)

 

 

Maratis scene exporter for 3dsmax status update

Around 5 years ago I found the game engine ‘Maratis’, I really liked it.
It’s easy to use, nice clean editor, nice LUA language support (which I’m used to from maxscript).
Very good for prototyping and creating games fast.

Back then I then created a exporter for 3dsmax for it, and posted a video of it here:

I then moved on to other projects.

But recent comments on the video about the exporter got me back to developing on it again, and I have now spent around two days upgrading the exporter to 3dsmax 2018, I have also rewritten most of it from maxscript to c++, so now the exporter GUI, animation modifier and physics modifier is rewritten as c++ plugins.
The last missing piece now is the shader (which will be done next).

The reason why I rewrite it in c++ is because I want to sell this plugin for a fair price, and I want the speed of c++, I spend a considerable amount of time developing tools like this, so getting something in return would be fair I think, the plugin will not be expensive, but fair.

Currently supported features:

  • All mesh types.
  • Camera (also target camera).
  •  Skin\bone animation. (can be animated with IK and anything else)
  • Spot \ omni light.
  • Physics parameters.
  • Animation parameters (animation name, length, start\stop time etc).
  • Full scene export.
  • Single\multiple mesh object export.

I’m now fixing the missing parts and getting it ready for release.

And worth a mention – if you edit a object in the maratis scene, then this is not updated back in 3dsmax. But that is how it is in most exporter scenarios, you set up the game level as want it, export, then continue in your game editor. You can however export single (or multiple) mesh only objects, then you can add these in your maratis scene as you go.
I might later look into a ‘import’ feature, that reads your maratis scene file and then updates the objects in max based on what you have done in maratis,
this will make a two-way connection, but that has to be determined later.

I hope to have the plugin ready for release in about a week, I need to fix the remaining shader stuff first.
Then I will also create a new video tutorial, and proper documentation (pdf).

Screenshot of maratis with a loaded scene exported with the new c++ exporter.

 

Testing CentOS 7 as desktop \ developer OS.

A couple of weeks ago I decided to give CentOS 7 a try as my main OS,
the reason why – is because it’s the closest you get to redhat without paying,
and I’ve been running everything from Debian to Arch, gentoo and others, but now I wanted a rock solid OS that feels predictable,
CentOS feels like the natural choice for that kind of system.

What worried me a bit was outdated software, that has been a issue before with other OS’es,
but after I checked aroud a bit I found out about elrepo,
which is a repository that you can add to CentOS so that you get better hardware support and drivers.

The ELRepo Project focuses on hardware related packages to enhance your experience with Enterprise Linux.
This includes file system drivers, graphics drivers, network drivers, sound drivers, web cam and video drivers.

The first big problem I ran into when I installed CentOS 7 was the kernel,
the netboot \ install DVD did not work as it should on my hardware, but the live-DVD did boot up and install.
The problem I had was that the hardware did not get detected properly,
and after I installed the OS trough live-DVD I decided to upgrade the kernel,
this again caused hardware issues, the usb froze and keyboard \ mouse stopped working,
so that I could not enter my full disk encryption pass phrase at start-up.

So I decided to install it again – fresh install with the live DVD, then I installed the kernel through this guide.
Getting the latest kernel fixed the issue I had with usb locking up, letting me log in and use it.

The next problem I had was to get the Nvidia drivers up and running, but after some trail and error I ended up using this guide.

When it comes to games I mostly run games via steam, that works as expected.
I also run Steam for windows through PlayOnLinux , so to get that to work on CentOS 7 I just grabbed the latest standalone package and run it there.
Then I chose to install ‘steam’ in the games list, accepting the defaults, then I go to it’s properties and make it run ‘wine staging’ instead of the default one.
Steam with wine on CentOS 7 runs like a charm.

I have a big list of games that I’ve tested here:
https://stigatle.no/index.php/2016/08/02/steam-games-for-windows-that-works-with-wine-on-linux/

I also buy games on Gog , since I like DRM free copies of games that I actually own.
They list each games dependencies – all tough they are listed with the names they have in Ubuntu, so some times you
have to jump through a couple of hoops to get the right ones installed in CentOS 7.

The trickiest problem I had with my games there was the ‘ libcurl-gnutls.so.4 ‘ dependency,
but in the end you could do the following to make it work:

cd /usr/lib
sudo ln -s libcurl.so.4 libcurl-gnutls.so.4

Also with QT Creator I had issues with libGL.so \ libGL.so.1 ,
the solution works the same way as the libcurl fix:

yum install mesa-libGL-devel mesa-libGLU-devel
cd /usr/lib
ln -s libGL.so.1 libGL.so

There are many repositories you can add that enhances your CentOS experience, you can look at them here:
https://wiki.centos.org/AdditionalResources/Repositories

Now I can say that everything I need works, nvidia, steam, all my games, all development tools, 3D tools –
everything I need, and it feels solid.

My render exporter \ integration project

The current renderer I’m writing a exporter for
(and later a proper integration) into blender is Pbrt.

The reason why I chose this renderer is because I have the book and I really like the renderer, and having a proper exporter \ integration of this renderer in blender is something a lot of people might find useful, especially if they have the book and want to really test the renderer.

And as you might know – many of the render engines on the market today started as Pbrt source code.

As you can see on my site I used to work with 3dsmax, but I’ve always had my eye on Blender,
and recent events with 3dsmax\Autodesk made me switch over full time to Blender.
I have been developing Luxmax (3dsmax integration of LuxRender for 3dsmax) for many years, but now I feel
that blender is where the future is, it is the best open source 3d application that exists today, and it will continue to be that,
so investing time into it is not something I’ll regret in any way.
And the best part of ditching 3dsmax is that you can get rid of windows at the same time, I now exclusively use Debian.

One other important reason why I do this is that I want to get more into the render engines as well, I want to be able to add to it, implement new things, learn new stuff, and that’s why I choose pbrt , the book really completes it.

Luxrender already has a great plugin for blender, and later I will most likely join the development on that,
but for now (since I’m busy with work and family life) I need a project I can do in my own tempo, and I need to learn all the nuts and bolts in blender.
Switching from 16 years of 3dsmax to Blender was surprisingly easy, and developing for it is not hard either, I’m used to maxscript\c++ so I feel
right at home with Python and c\c++ in Blender.

I have not decided yet if this will be a open source script, fully free, or if  you should be able to buy it instead (or maybe try the ‘patreon‘ thing).
I will decide on that in a bit once it’s more feature complete, currently it’s in its infancy.

For now I have a simple test render with a basic shader:

My new project

I’ve been thinking about it for a long while, and now I’ve decided to invest all my free time into it.
I will integrate a renderer with Blender, first as a exporter for the file formats that the renderer uses, then
do a better integration later on when that is feature complete.

I have ditched windows completely, and with that 3dsmax. I still use 3dsmax at work every day,
but now I do not use it for anything at home. I invest all my time into blender now, that makes perfect sense to me.
I really enjoy blender, and after 16 years of 3dsmax it feels great to have a fully open source work flow.

Here is a sample of what’s to come:

How to chat on https://Diasporapod.no

Here is a quick guide on how to chat on https://diasporapod.no

The web interface for chat has been enabled as well, you follow the step below here,
then use the web interface to chat with users (on the right side of the screen you open the chat window).

Enable chat for a contact groups:
I recommend that you create a new group named ‘chat’, then click the speech bubble in top right for that group,
then you add the people you want to chat to to that group as well as the others you feel they fit in.
This enables you to control very specific who you enable chat with.

In my example I’ve enabled it for the whole group named ‘following’.

How to chat with a desktop \ mobile xmpp client:
After doing this you need to set up a xmpp client,
you find such clients on Linux \ Windows \ Android etc.
In this example I use ‘Pidgin’, you can download and install it from here: https://pidgin.im/

After installation you need to configure your user account and server setup.
Click ‘Accounts -> Manage accounts’ after starting pidgin.

Set up your username and password for https://diasporapod.no
And set up the server setting like it’s shown in the pictures.

When this has been done – enable your account and you will see contacts being online.
Feel free to add me and test with that, I will reply as soon as I can.

 

 

Status of LuxMax

Some of you readers might already know I’m the main developer of LuxMax.
The current status is very positive, I’ve released several stable versions now and added  a lot of new shaders.

The biggest improvement is stability, now you can leave the renders for days without any memory leak or such.
Also the new shaders lets you play around and create much more advanced materials then before.
This is my main focus right now – add all missing shadres \ textures \ features.

The development of LuxMax happens here:
http://www.luxrender.net/forum/viewforum.php?f=33

Here is a test render I did this weekend, showing some of the new shaders and the DOF.

Technical test renders

I collected some of my old renders that I’ve done during the development
of a render plugin I actively developed for many years.
They are test renders of specific features that I implemented.

These where made during the development of Luxrender 3dsmax plugin.

Metal \ Glass IOR

test_lux_glass_gold_render

Metal \ Glass \ Glossy material

test_render_some_stuffMetal \ Glass \ Glossy material

test_render
DOF (depth of field test) and again – glass and glossy (I love that)

abstract_by_stig_atle

Testing of DOF and metal \ glass shaders, and ‘Matte’ shader

glass_env_ior_dof_clean_render

Showing the difference between light ‘architectural’ glass and regular glass with IOR (arch glass on the right).  lux_ior_works_again

Shader test, metal \ carpaint and translucent shader test.lux07_mat_test
Again a extreme DOF test.
luxout_2
Here I implemented UV mapping (flipped up side down for test).
luxout

Showing that you can load ‘metal data’ and render physically correct metal (nk data).nxdata_clean_render