A fact about how software-rendering is managed in practice, today.

People of my generation – and I’m over 50 years old as I’m writing this – first learned about CGI – computer-simulated images – in the form of ‘ray-tracing’. What my contemporaries are slow to find out is that meanwhile, an important additional form of CGI has come into existence, which is referred to as ‘raster-based rendering’.

Ray-tracing has as advantage over raster-based rendering, better optical accuracy, which leads to photo-realism. Ray-tracing therefore still gets used a lot, especially in Hollywood-originated CGI for Movies, etc.. But ray-tracing still has a big drawback, which is, that it’s slow to compute. Typically, ray-tracing cannot be done in real-time, needs to be performed on a farm of computers, and typically, an hour of CPU-time may be needed, to render a sequence which might play for 10 seconds.

But, in order for consumers to be able to play 3D games, the CGI needs to be in real-time, for which reason the other type of rendering was invented in the 1990s, and this form of rendering is carried out by the graphics hardware, in real-time.

What this dichotomy has led to, is model- and scene-editors such as “Blender”, which allow complex editing of 3D content, often with the purpose that the content eventually be rendered by arbitrary, external methods, that include software-based, ray tracing. But such editing applications still themselves possess an Editing Preview window / rectangle, in which their power-users can see the technical details of what they’re editing, in real-time. And those editing preview windows are then hardware-rendered, using raster-based methods, instead of the final result being rendered using raster-based methods.

Continue reading A fact about how software-rendering is managed in practice, today.

OpenShot-Qt Now Cooperates With Wayland Compositing.

One of the subjects which I blogged about before was, that the Debian version of OpenShot at the time, would simply freeze with desktop compositing on. That was the default, GTK version of OpenShot. Further, I can’t vouch for OpenShot under Windows because I think that the way it installs itself is botched. Yet, I am always keen to have such non-linear, 2D video editing applications available.

Well in the present, I have an up-to-date version of OpenShot installed, which is explicitly the Qt-version, installed as the package ‘openshot-qt’ on a Debian / Stretch computer. The main reason fw I have this version working, is the fact that I subscribed the computer I name ‘Phosphene’ to the Debian Multimedia Repository. Without access to this repository, Linux users can sometimes be hosed. In other cases, having its libraries installed can break dependencies with other software.

But this latest Debian Repository version of OpenShot-Qt (2.3.4), for Debian / Stretch, impresses me. Actually, when we first install it, the run-time won’t run, because of a missing library, that being ‘urllib’. This is due to the application package failing to state a dependency. This dependency can be resolved by installing ‘python-requests’ and ‘python3-requests’, which I believe also pulls in ‘python-urllib3′ and ‘python3-urllib3′. After this has been installed, ‘OpenShot-Qt’ runs.

When the developers upgraded their main build of OpenShot to version 2 (+), they needed to rewrite the source code for all the effects of the editor. And for this reason, the up-to-date version only seems to have 7 actual effects, that run over the duration that they’re applied for:

Screenshot_20190224_201216

Such Effects can be applied to a clip, by dragging them onto the clip.

In contrast, because of the flexible way in which this editor defines Transitions – as grey-scale images, it still seems to have an almost unlimited supply of those, that transfer the foreground from one video clip to another (not shown).

But one way in which OpenShot makes up for its small library of 2D /time effects, is by giving its user a very powerful Title Editor, which actually invokes Blender, in order to create renderings of Titles with 3D effects:

(Updated 2/27/2019, 5h50 … )

Continue reading OpenShot-Qt Now Cooperates With Wayland Compositing.

How To Install Yafaray Under Linux

One of the computing subtopics I dabble in, is the acquisition of 3D-graphics software. Therefore, I already have “Blender 2.78a”, which has its own built-in software-rendering engine, and I have several other rendering engines installed on my Linux-based computers.

Further, the rendering engines by themselves can be useless, unless they integrate well with a GUI (such as with Blender). And so one undertaking which I’ll typically reach with a given computer, is to install “Yafaray”, which used to be ‘Yafray’, which stood for ‘Yet Another Free Ray-Tracer’. If it’s installed properly, Blender can render its scenes, using Yafaray, but from within Blender.

Yafray used to be a much simpler piece of software to install than it has become. But I’m sure the effort I put into it this evening, will be well-worth it eventually. What I’m used to doing is to download a source-tree, and if it’s CMake-based, to run ‘cmake-gui‘ on it, to custom-pick my build options, and to go. But as it happens with Yafaray, this approach led to near chaos. What this did, was to compile all the source-code properly into libraries, but then to install those libraries to nonsensical locations within my system folders. One reason was the fact that a part of the project was to create Python 3 bindings, and another was the need for the Blender-integration, where modern Blender versions are based on Python 3. In any case I was sure to install all the build dependencies via my package-manager, but doing so was not enough to obtain working outcomes.

funbutterflysphere3-0001

Continue reading How To Install Yafaray Under Linux

Panda3D Compiled and Installed on ‘Klystron’

I have just completed a project, by which I downloaded, compiled and installed the 3D-game / 3D-application development software named Panda3D, on the powerful Linux laptop I name ‘Klystron’. That laptop is not to be confused with the less-powerful Web-server I name ‘Phoenix’.

This game-development kit started out years ago as a much-simpler project from Carnegie-Mellon University, which at the time I called a toy. But as it stands today, the level of sophistication and power available through Panda3D has grown tremendously. It is no longer a toy by any means, and is also one of the few game-dev platforms I know of, that can be scripted directly in Python.

One of the new features that make it interesting, is the ability to use Bullet Physics, especially since the simpler ODE (Open Dynamics Engine), game-physics engine, is broken on some platforms.

Another new feature is the support for a browser plug-in, that will allow games etc. to be deployed as Web-content, as long as the browser has the run-time plug-in installed. The actual embedded applet will then take the form of a ‘.p3d’ File.

One aspect of compiling this software that takes some getting used to, is that its python-based make-commands accept an ‘–everything’ parameter, which essentially tells the make-script to find all the relevant dependencies on the local computer, and then to configure the version of Panda3D we are compiling, to link only to the dependencies which were found, thereby either including some features or leaving them out.

I found that my only way to process that information, was to run the make command a first time as a dummy-run, and then to interrupt it. At the top of its build-log, it will show the power-user which libraries / dependencies it did not find, as if the intention was not to include those. After having interrupted this first run, I next went through my package-manager and installed all the packages named, which I felt might add some value to my build of Panda3D.

And so, after I checked out the GIT version of the software to a folder named ‘~/Programs/panda3d’ , and after ‘cd’ -ing to that directory, I felt that the following recipes were of use to me:

Continue reading Panda3D Compiled and Installed on ‘Klystron’