I saw a post about using Aqsis with Blender and I thought…shouldn’t Matt Ebbs 3Delight exporter be able to work with that?
The short answer is “kind of”. It kind of works.
This first post shows that I can get rendered output, including RIB generation from Aqsis. However, the portion of Matt’s exporter that deals with the list of shaders seems to be caught in some infinite loop. So on my first attempt I have no shaders or shadows.
One initial task I had to do was to re-compile all the surface shaders that came with Aqsis 1.8.1. It seems the .slx files were generated by a newer version than the one that ‘offcially’ shipped. So if you get wrong version of shader error from Aqsis, that is how you resolve it. Re-compile all the shaders (or the ones you are using).
Here is the batch script I used to recompile all the shaders plus a few of my own.
You may notice the Windows ENVIRONMENT VARIABLE in use above. This was also an extra task that I had to do when logged in as Administrator of my system. I created a new environment variable called “AQSIS_PATH” which has the value of “C:\Program Files\Aqsis”
The image below shows the path fields correctly populated with the programs that are needed for operation.
I made a little more progress on converting the 3Delight exporter to use Aqsis. I have officially branched the exporter. I have renamed the exporter to Aqsis and I have begun altering the code to work specifically with the Aqsis tools. This is essentially what Matt did with 3Delight which is why it does not work with Aqsis now. This way it will not conflict, at the AddOn level, with Matt’s 3Delight exporter. It now shows up as a separate AddOn in the User Preferences. You will be able to use both AddOns on the same system. I plan to try to keep as much of Matt’s framework intact so if he comes up with an update I can migrate it easily.
The reason why the Material TAB hangs is that it is using 3Delight specific tool calls to fetch information about the shaders. I have managed to re-map the shader name and type. This gets us diffuse color on objects…Yeah!
There is still more work to do, of course, like mapping the shader parameter outputs from aqsltell into the correct format for the exporter to display in the GUI. It is nice that all of Matt’s great framework that analyzes the scene, converts objects and writing of RIB files seem to remain compatible and working with Aqsis.
In this image you see a standard mesh, a mesh with a subsurface modifier and a font object all exporting correctly.
Are you aware of the exporter developed by nfz in the Aqsis team. This exporter is those one started by Whiterabbit.
Don’t you think, it’s duplicating effort to write your own??
By the way, the Mattebb exporter style is more friendly user, so I encourage you. Any link???
nfz has discontinued development on that exporter, according to the “ribmosaic 2.5 development” thread. it only worked for me with blender 2.58 (and only with certain revisions). there was a recent github update for 2.62, but it was completely broken for me. so i’m stoked about Atom’s work on this!
did you mean how will he specifically access those features? or did you mean ‘how does one access those features?’ i’m still a little lost on how to call indirect lighting, i want to study it a bit more. but for occlusion, with RIB Mosaic, you can add a point cloud pass, and add a light with two shaders - a bake_ptc_light (for the point cloud pass), and an occ_ptc_light (for the beauty pass). the point cloud pass shading rate made an enormous difference in render time, and only a little difference in terms of occlusion quality, fyi.
Thanks for the encouragement, I am still learning renderman so development has slowed a bit. Aqsis does not support all the features of 3Delight so I am considering it a subset of 3Delight. I just worked out a bug, last night, in the material system, so I hope to have materials and their parameters up and running first.
I just discovered, after reading the Aqsis documentation, that Aqsis does not support raytracing at all so I’m not sure how that will affect the usability. Does this mean you can not do glass or reflections in Aqsis? If so, this along with only being single core makes me wonder if it is even worth the effort…? But I am still working on it, I just got busy with real world jobs.
raytraced refraction isn’t possible, but glass is - http://www.youtube.com/watch?v=PRTcSF4lD-U
that was done with MOSAIC (as was this one: http://www.blendertorenderman.org/2008/07/mosaic-feature-ramblings-post-12.html). i never could quite figure out how to get that glass material working in the latter link; i followed the tutorial but could never get it to work right.
reflections have to be done with an environment map pass, i believe. in MOSAIC, they were incredibly easy to set up per object, and you can get a realistic chrome look really easily that way. maybe check out the code from MOSAIC v.4 beta?
congratulations on being busy with real world jobs! lol, wish i could say the same!
I have made a little progress and thought I would share a couple of screen shots. I have managed to map the Aqsis shader information into the existing 3Delight UI display. So now it is possible to pick settings in the Material or Lamp context and have them relayed to the RIB generator. So the exporter is kind of at a Frankenstein stage at this point. It reads Aqsis shaders, but still spits out 3Delight code. I think the next step will be trying to get shadow maps working.
This image shows the light controls and the softness of the spotlight edge. Along with a checker and pink marble shader.
This images shows that you can make the spot light edge sharp via the UI controls. It also shows the matte material alpha working, however there are render anomalies generated by Asqis itself.
I have a first draft of shadowmaps working for the spotlight. They seem a little crunchy, however. I am using a 256x256 shadow map with a shading rate of 0.5.
In this image I tried out UV mapping and it seems to work. Prior to unwrapping the Cube the checker shader only worked on the top face. After a Cube Projection unwrap the checker covers all faces. Playing with blurring the shadowmap allows for a slightly softer edge.
Here is the monkey with the standard plastic shader applied. I have also added a point light to the scene that I assigned the ambientlightshader to. I turned the intensity down to 0.07. This is just enough to bring up those pure dark faces.
Here is an example of how UV mapping is looking on various objects. The plane seems to map just fine. The font is ok but there is some stretching along the extrude faces. The curve (which is the arc under the font) maps very poorly but it is nice that it renders even if I can find no control for the width of the arc. This is supposed to be a checker texture but it just looks like long bands of alternating yellow. The shadowmap seems to have some problems along the lower left corner of the image. It seems like the shadows just ran out of map and hit an edge. Or that the mapping from the square shadowmap to the 16:9 camera view it somehow off…?
It looks like depth of field works right out-of-the-box, but there does seem to be some render anomalies produced by Aqsis in the foreground cube. Perhaps different settings might make it work better. In this scene I adjusted the Distance under the Camera context then turned on the Depth Of Field in the Render context and set the F-Stop to 1.25.
This image, above, also shows the use of the new occlusion() function for shaders which is a new feature of Aqsis 1.8. In this scene I am using it like an AO light (that produces no shdows) but it brightens the scene and makes the shadows from the spotlight less dark and slightly transparent.
tight, your progress is impressive! what version of blender are you doing this with, out of curiosity?
will you be adding UI accessibility for point cloud occlusion and indirect lighting? i wonder if matt’s point cloud GI additions will be compatible with aqsis?
i’d love to play around with what you’ve done, if and whenever you’re inclined to share!
Thanks for the encouragement, I am developing this on Blender 2.6.2 r44219. Initially I was developing for Aqsis 1.7. But I just upgraded to 1.8.1 and discovered that an undocumented change (not in the release log) was done to aqsltell. Instead of just reporting the the shader type followed by the shader filename (without the path). The new 1.8.1 release returns the shader type followed by the fullpath filename to the shader. This broke my code and I am patching it to work with the latest version of Aqsis.
It looks like it is currently not compatible with a bMesh build r44994, but maybe a new build will fix that. Something about a uv1 no longer valid, I guess the developers are renaming things again.
I am keen to get point based GI working. I plan on trying to leave what Matt has in place and just remap whats there to work with Aqsis new features. I am still trying to understand how it all works. There are multiple passes that need to be rendered in specific order to pull it off. And out of all the example files that come with Aqsis, that one does not have a BATch render file that I can look at to determine the order.
Right now the code is too buggy to release, I am patching it as I go along. Once I get a little scene working I post an image and move on. But I will keep you both in mind when I get to an alpha release for general testing.
i’m not sure if this helps, but there was that thread on aqsis.org about the RIB Mosaic development for 2.5, and nfz posted some screenshots of how he got point based AO working. i followed those instructions and was able to get it working. i dunno if this is what you mean, but what he’d figured out (from following 3Delight tutorials about it and trying it out with RIB Mosaic) was that you have to create a point cloud bake pass, with a light linked to that pass (in that case, it was a bake_ptc_light shader or something like that) as well as to the beauty pass (with another shader, occ_ptc_light, linked to that pass). so the first pass rendered was the ptc bake pass, and then that was read when rendering the beauty pass. is that what you’re talking about? or have i totally missed your point?
i have no idea how to get indirect lighting working though. i don’t quite understand what nfz did in the rib files on those PBGI posts on aqsis.org.
Aqsis is powerful but not threaded, and has no SSS. Pixie is multi-threaded, powerful, has GI but is dead.
3delight is not very free. When will have REYES in opensource world? probably never
Arggh! I only found this thread, now.
Aqsis supports multi-threading since 1.6 as an experimental feature. It means that it must be enabled as a cmake target before compiling aqsis.
Like for BI, you can make a fake SSS. Reflection can be done with environnement maps. Blendertorenderman.org is dead.
Gallery of ribmosaic is one of the last place to see what aqsis is capable of. http://sourceforge.net/apps/gallery/ribmosaic/
This renders to show abilities of ribmosaic when no renderer is specified were done with aqsis.
It was the most compatible engine with mosaic.