ARCHITECTURAL VISUALISER | TEXTURE ARTIST & 3D MODELLER for
BLACK MESA - A HL2 MODIFICATION | SOFTIMAGE , OCTANE RENDER, SHIVA 3D, REAPER.FM & SKETCHUP USER | HALFLIFE2 & ARMA2 MODDER | CMIVFX AFFILIATE | ANDROID / MOBILE DEVELOPER
24 October 2009
Alternative to bevel
1. Press plus (numpad "+") to work in subdivision mode from the get go. (Times 2 if your computer can cope with it).
2. For the working viewport, go to the Camera Visibility (shift + S) > Attributes tab and turn on Polymesh hulls
3. Goto shaded mode.
4. Use split edge to create tighter edges on the subdivided mesh.
5. What defines the sharpness of the sub-d models edge is the distance the second edge or "inner" edge is to outer edge. So in the image above you can see that in the lower viewport, the left side has a second/inner edge causing a tighter curve while the right side is much softer.
6. With this technique using inset on an single polygon can have a similar result as using bevel. However, I recommend just using split edge and subdivide edges evenly.
10 October 2009
RTCompound: Architectural Framebuffers Compound
This is a rendertree compound that splits up the Architectural Shader over ALL the framebuffer channels. Something similar has been done but I thought I'd try it myself anyway.
What I've also done is created a couple of simple scripts that set up ALL the required channels so that all you need to do is plug in the RM_Architectural Splitter and hook it up like a normal mia_architecture node and your ready to render out a pass on floating point or non-floating point channels.
Lastly, I've left the names of the mia parameters as they are so its easier to cross reference with the param names in Mental Images Architectural Shaders manual.
Download here.
04 October 2009
Convex collision mesh creation with Stanhull/Softimage
First you will need to download this file. Its called Stanhull. It's a simple program that spits out an obj file containing a convex mesh based on an input mesh (inside an .obj file). Extract and place in a folder of your choice. If you don't want to edit the script below use the path: C:\3d\Stanhull\
1. Create your physbox model components. I do this by breaking up the original model into roughly convex forms. You are limited to the number of these by default (to 16 I think) but you can overide the limit with a line in your .qc file. The $maxconvexpieces QC command can increase this.
2. Select the new convex model pieces and run the convex script:
'Objdir = the directory you want the exported Obj to go to (change if you wish)
Objdir = "C:\3d\Stanhull\"
'StanhullDir = the directory you have put stanhull.exe in (change if you wish)
StanhullDir = "C:\3d\Stanhull\"
'NOTE: file is always created in the Softimage\version xx\Application\bin dir and always called hull.obj
fileOutLoc = Application.InstallationPath( siFactoryPath ) & "\Application\bin\hull.obj"
set list = GetValue( "SelectionList" )
if list.count = 0 then
MsgBox "Please select at least one polymesh object first!!"
else
for each item in list
logmessage item.name
name = item.name
if item.type = "polymsh" then
'select objects one by one and export
SelectObj name, , True
getObjname = Objdir & "convert.obj"
ObjExport getObjname, , , , , , , , , , 0, False, , , False
'set up s.ystem command to run Stanhull.exe
cmd = StanhullDir & "StanHull " & getObjname & " -t"
cmdResult = s.ystem( cmd )
set inObj = ObjImport( fileOutLoc, 1, 0, True, True, False, True )
'select new object and set up geometry approximation as needed for .phy SMDs
SelectObj inObj, , True
MakeLocal inObj & ".geomapprox", siDefaultPropagation
SetValue inObj & ".geomapprox.gapproxmoad", False
CreateProjection , siTxtCubic, siTxtDefaultCubic, , "Texture_Projection"
FreezeModeling
end if
next
end if
3. Now with the new convex imported back in, select them and remove automatic discontinuity from them all with the following script:
dim name4. Lastly, I apply cubic UVs to all of the physics box objects by selecting them and running this script (below). Once frozen, they are ready for exporting as SMD files for compiling.
set list = GetValue( "SelectionList" )
if list.count = 0 then
MsgBox "Please select at least one polymesh object first!!"
else
'start rendermap make routine - depending on scene size and object complexity this could take a while... :)
for each item in list
logmessage item.name
name = item.name
if item.type = "polymsh" then
SelectObj name, , True
MakeLocal ".geomapprox", siDefaultPropagation
SetValue ".geomapprox.gapproxmoad", False
end if
next
end if
dim namefreeze ALL. (You may need to add an image to the material).
set list = GetValue( "SelectionList" )
if list.count = 0 then
MsgBox "Please select at least one polymesh object first!!"
else
'start rendermap make routine - depending on scene size and object complexity this could take a while... :)
for each item in list
logmessage item.name
name = item.name
if item.type = "polymsh" then
SelectObj name, , True
CreateProjection , siTxtCubic, siTxtDefaultCubic, , "Texture_Projection"
end if
next
end if
03 October 2009
New Ultimapper Options in Softimage 2010
In this case, bent normals seem a lot smoother while the binormals map seems to result in a closer approximation from hi to low res sources in this case. The drawback with bent normals is they render twice as slow. However, I'm pretty sure that there is a case for each of these solutions out there.
24 September 2009
SunPosition update for 2010
23 September 2009
Colorspace/Physically correct colours in Softimage
http://harrybardak.co.uk/sRGB.htm
http://kobayashystips.blogspot.com/2009/09/linear-workflow-in-softimage.html
Further discussion, etc about here:
http://community.softimage.com/forum/autodesk-softimage/rendering/softimage-gamma/page-1/
http://www.aversis.be/tutorials/vray/essential_gamma_01.htm
Isolating individual scene objects per pass
This is a pass setup I came up with to address a question posted here.
Basically, the query was how to remove individual elements from a pass but still have their reflection appear on other objects. So, in the image above the blue sphere is rendered in the reflections of the grey sphere, but is invisible in the pass.
Basic Setup: All the materials in scene should have a raytype switch plugging into the material node and the rest of the material tree plugging into all ports of the raytype node.
Then in your new pass partition you add an overide property and add the material-Ray_Type-eye parameter to it.
Press 7 with the overide selected and plug a constant shader with 0 for everything including Alpha into the overide node.
You can then drag and drop any objects you like into the "hide" partition and have them not rendered in primary but still appearing in reflections without having to tweak all their rendertrees seperately.
RENDERCHANNNEL alternative
Of course, this still leaves the guy who asked the question with 70 individual passes, so a setup using renderchannels must be preferable:
For every single material you can add a Store Color in channel node between the material node and the material tree and create a new render channel with a name like "blue". Then in the render region pick the channel.
In render manager > pass > Output - add all the new channels to the Render Channels Output list. The advantage is, of course that each individual renderchannel image gets rendered during a single pass.
With a combination of both methods you can break down the scene into its seperate parts by rendering a single multi-channel pass and then create passes as needed to isolate and re-render material changes as required.
18 September 2009
dxf importer 2010
Get them from the usual place, here.
06 September 2009
Bot Walk 2
Slightly different take on the bot walk. From scratch again, this time I tried to match the rig motion with foot motion, so it travels forwards and the feet sit on the ground. Again, only 29 frames...
05 September 2009
Bot Walk 1
My second go at creating a walk cycle using a premade, free to use character rig from www.creativecrash.com (formerly known as highend3d.com)
29 August 2009
Architectural modeling tools
Archtools for Softimage demostration from Jason Wells on Vimeo.
V2 released
-Cameras-
Fixed Polygon Cam (new) - create a view perpendicular to an arbitary polygon
-primitives-
Draw and size Cube, Box, Cylinder, Sphere, Cone, etc standard primitives in viewport
-transform tools-
4 point rotate
2 point transform
3 point scale
mirror about 2 points (new)
align objects by 2 polygons (new)
align object - polygon to edge (new)
aligh object to polygon (new)
Limitations: these do not work correctly on enveloped meshes unfortunately.
-measuring property-
Apply to scene root and measure distances - automatically converted to scales like mm, cm.
Download from here
02 August 2009
09 June 2009
New IES Light plugin

New Softimage Community Forum
07 June 2009
dxf importer plugin now at The Area
24 May 2009
Environment Art Portfolio site now up!
I've got my game art portfolio up online now - check it out here: link12 May 2009
Cloudwright plug-in Open Alpha
This great new plug-in has arrived as an open alpha from http://www.simul.co.uk/. You can download the installer from here: http://www.simul.co.uk/cloudwright/plugins.18 March 2009
dxf importer and sun position plugins updated for Softimage v7.5
01 December 2008
Black Mesa Official Trailer
20 November 2008
Happy 10th! Black Mesa Media Release Nov'08
10 October 2008
Dxf importer for XSI v6 & v7
New ICE compounds
19 August 2008
Pigeon Impossible
09 August 2008
XSI 7 shipping! Redmotion plugins do not work in v7 yet
I've evaluated all the current redmotion compiled plugins. None of which actually load into v7. I will upgrade to v7 very soon and update all the plugins at some point. The best workaround currently is to continue to import dxf files into XSI 6 and then open the saved scene file in v7.
02 August 2008
Fluids with Ice? (XSI 7)
metaball animation XSI v6 from Jason Wells on Vimeo.
People keep asking whether fluids will be possible with ICE in XSI 7. I think they will, but perhaps not right away. Why? Because stuff like this (video above) is already possible. This is half the battle. The other half is getting the particles to behave correctly. This is sure to be an ICE compound sooner or later.
28 April 2008
Morgan Cheetham Chair Visuals


EDIT : 30-04-08 - updated to show correct rear feet.
09 March 2008
Redmotion plugin development update
Finally got around to redoing my old vbscript as a C# dll (something long overdue). This time there will be more useful import options plus each dxf layer will be assigned a seperate, appropriately named material. (Image below shows 8000+ individual polygon cubes on five seperate layers imported in about a minute.). I've noticed that there are memory issues in importing huge DXF scenes (my computer crashed out after reaching the 2 gb limit) using the dotXSI format and I'm looking at some work arounds (each layer is loaded as a seperate dotXSI file).
I'm mulling over some improvements for the 2d plugin as well.

red_Archtools
Been developing quite a few new extras for the Archtools plugin including some tweaks to the existing toolset (all these are hacks are possible using sequences of existing XSI commands but the procedures are scripted to speed things up):
Primitive > Camera > Fixed Polygon Camera ( creates a standard orthographic camera locked exactly perpendicular/parallel to a selected polygon - helps with the accurate and fast trimming of meshes.)

Trim trim away.. (Use the knife tool to cut polygons accurately \/ )

Get > Property > Measure (this is a modification of Isner's original measuring tool but it gives you the option to copy-paste a measurement to another place (perhaps the windows calculator) and also to set a scale (SI units to mm) so that the readout can be displayed in equivalent units (like mm, cm, etc.) Its applied to the scene root as a property.

Transform > Transform by 2 points (move a object by snapping two points: start position and end point only. No need to go through the whole moving centre routine everytime.)
Transform > Scale by 3 points (unchanged)
Transform > Align to Polygon (align an object (position and rotation) to the centre of a polygon witha few clicks)

Transform > Mirror by 2 points (this is a classic cad tool. It mirrors an object over an arbitary line)
Transform > Rotate by 4 points (precision rotation of multiple objects - same as before)
Transform > Align to edge (similar to Align to polygon but moves and rotates an object to an edge)
Edit > Instances on a curve (Will include this - its handy - see post below)
(May tweak these commands listed below)
Primitive >Polygon mesh > Draw Box
Primitive >Polygon mesh > Draw Cone
Primitive >Polygon mesh > Draw Cube
Primitive >Polygon mesh > Draw Cylinder
Primitive >Polygon mesh > Draw Sphere
red_SunPosition

I'm in process of TRYING to update the plugin to read a text file into which you can place cities, locations of your choice and select them through the sunpath interface to get the correct longitude, latitude, timezone, etc. I've tried this before and but have had technical problems with the combobox.
28 February 2008
Sunpath tutorial video
This is a quick video to demostrate the Sun Position plugin in use. Download from here.
23 February 2008
Instance on a curve (XSI)

Get it here.
02 December 2007
Archtools for XSI

Click on this thumbnail to see 4 point rotate in action.
EDIT: (link updated. - download and replace file from .txt to .xsiddon) here.
15 November 2007
Black Mesa: Source
02 November 2007
Sunpath plugin - alternative download
http://files-upload.com/333993/SunPosition-beta0.2-26-06-07.zip.html
07 September 2007
IES Lights in XSI

Anyway, Ctrl.light profile does seem to display a reasonably accurate visual appearence of a luminaire, if used correctly:-
To get a hold on how to use the plugin do the following:-
1. Firstly: find a light fitting that you know about, it helps to have
photographs of it installed and working. I chose some uplighters from Erco;
(Erco are good because provide both 3d meshes and IES data for all their
products as well as comprehensive brochures.)
2. Then: Get > Primitive > Geoshader and add the plugin to the
Geoshader.
3. Import the appropriate IES data into the IES filename section.
4. Create a point light. Important: Reduce the intensity of the point light
you are going to use as an IES to 0 or you will not get a correct result - you'll end up getting light from the pointlight as well as the IES shader (which is extra bad if you are using GI or/and FG.)
5. In the light part of the plugins ppg attach the new point light.
6. Now do a test render of the light positioned near a surface and go
forward from there.7. Important: DON'T rotate the point light. After all, there is no logical reason to. IES data for an uplighter will automatically cast light upwards, a downlighter will always cast light downwards. Just placing the pointlight above or below a specific light (depending on the type) is all you need to do.
Finally, if you need more than one light of the same type, use Instances. Create a model from the light mesh object (if used), point light and geoshader, then instance them around the scene - Works well.
25 August 2007
3rd place - T-Gen Competition Entry

20 August 2007
Redmotion XSI plugins - now packaged addons
2d Dxf importer for XSI v6 - here
(No Change)
3d Dxf importer for XSI v5/6 - here
(No Change)
Sun Position plugin - here
(Now features Primitive > Light > Sun and Property > SunPosition menu items. The Sun primitive features a "distance" parameter for moving the light clear of the scene.)
Four point rotate - here (Post coming soon about how to use this plugin - it's a CAD style precise rotation tool.)
09 August 2007
Something revolutionary is coming!
(It) will do for particles, custom ops, and tools, etc what the render tree has done for custom look development. That is, open it up to many more people and increase the rate of development.Basically, it seems as if you will be able to add your own complex features based around existing operations perhaps without any coding experience.
06 August 2007
29 June 2007
Sun position for XSI 6 - beta

Read the instructions in the readme file for installation and usage.
Residential Building 1 (reprise)
Both images can be found at my portfolio at CGTalk - http://jasonio.cgsociety.org/gallery/
15 June 2007
T-Gen for Softimage XSI - public beta

This is a plug in I've been lucky enough to have been a beta tester on for the last week or two.
What is it? To quote the T-Gen website:
T-Gen is the first tree and plant generator plugin fully integrated into XSI architecture. Over 100 appearance and distribution parameters, full utilization of XSI curves and node-based hierarchy ensures great flexibility and huge possibilities while creating your own trees and plants. You can use almost all XSI tools to additionally edit materials, geometry, hierarchy of all T-Gen objects. With powerful optimization tools you can create low-poly trees and plants for your games. Almost all parameters of T-Gen are animatable, so you can create animations of growing trees and plants.

12 June 2007
Auto-rendermap script (XSI)
Here is a short script for automating the UV-mapping and rendermapping of any polymesh objects you have selected. Change the parts highlighted in red if you want better resolution textures to be generated (eg:512 to 1024). You can also add further rendermap options here like to render illumination only. The line in green is where the UVs are applied. This can be amended to suit various situations.All rendermaps are automatically saved out to your project/Rendermaps directory.
Once rendermapping is complete, constant shaders are then applied to all the objects and the textures are reattached to the correct objects automatically.
Switch to textured decal in the viewport to see the result.
(Save a copy of the scene before continuing and use at your own risk)
'Make a rendermap on every selected object in scene
'completed between 10 & 11-06-07
'By Jason Wells aka Redmotion
dim name, imfile, oClip
set list = GetValue( "SelectionList" )
if list.count = 0 then
MsgBox "Please select at least one polymesh object first!!"
else
'start rendermap make routine - depending on scene size and object complexity this could take a while... :)
for each item in list
logmessage item.name
name = item.name
if item.type = "polymsh" then
SelectObj name, , True
'set up unique UVs with name starting with RM_
oUVs = GenerateUniqueUVs (, "RM_" & name)
AddProp "RenderMap"
SetValue name & ".RenderMap.imagefilepath", "Render_Pictures\RM_" & name & ".pic"
SetInstanceDataValue , name & ".RenderMap.uvprop", "RM_" & name
SetValue name & ".polymsh.cls.Texture_Coordinates_AUTO.RM_"& name &".PolyPackUV.targresv", 512
SetValue name & ".polymsh.cls.Texture_Coordinates_AUTO.RM_"& name &".PolyPackUV.targresu", 512
SetValue name & ".RenderMap.resolutionx", "512"
SetValue name & ".RenderMap.squaretex", True
logmessage "RENDERMAP generation starts for: " & item.name & " - please wait"
RegenerateMaps name & ".RenderMap"
logmessage "RENDERMAP generation complete!"
end if
next
'change the shaders for selected objects to constants and add RM_image
for each item in list
name = item.name
if item.type = "polymsh" then
SelectObj name, , True
'bring in all rendermap clips
imfile = "Render_Pictures\RM_" & name & ".pic"
oClip = "Clips.RM_" & name & "_pic"
ApplyShader "Material\Constant", , , , siLetLocalMaterialsOverlap
CopyPaste , imfile, "TransientObjectContainer", 1
SIConnectShaderToCnxPoint oClip, ".material.Constant.color", False
SetInstanceDataValue , ".material.Constant.Image.tspace_id", "RM_" & name
end if
next
DeselectAll
end if
Exporting directx files to Dark Basic Pro from XSI

Exporting environments as direct x files to Dark Basic Pro from Softimage XSI isn't that straightforward. But perfect results are possible:-
1. Make your scene, texture and lightmap as required.
2. Save the scene before continuing. Now flip the entire scene as follows:-
- create a primitive > polygon > cube
- make the cube the parent of all polygon scene elements
- scale the cubes Local Z scaling to -1 (flipping the scene) (EDIT: changed from X to Z)
- in explorer, drag all the scene objects back to the scene root
- delete the cube
- select all the scene objects and freeze all transforms

- export using the settings in the image below:

Tip1: Always export to the game directory. XSI will copy and convert all textures in the scene and place them here.
Tip2: Unless there are animated objects in the scene, uncheck export animation otherwise it will crash (and vice versa).
Tip3: Animation Type: Matrix Keys are bone based animation
Tip4: Animation Type: SRT are scale/rotate/transform animations (good for platforms)
Tip5: Complex character rigs will cause crashes. Use the simplest possible rigs for exporting.
Tip6: You can choose shrink textures or choose alternative formats.
3. You will now have a directx file and a series of .jpeg textures in your game directory.
4. Go to your art program (Photoshop or Gimp, whatever) and load up, flip horizontally and save all the scene textures.
5. Go to DBPro and run your model loader code:
29 May 2007
Residential 1

Experiment with instances, architectural materials, low/fast FG settings, physical sky & sun shaders.
Posted at the XSI base forum and consequently made the front page. :)
10 May 2007
Faster 2d .Dxf importer for XSI 6+ only
Posted this on XSI base on April 6th 2007. So far there hasn't been much interest so development hasn't progressed much further.
Before using: Please note that all data to be imported should be FLAT 2D CAD data. For files with line information or DXF polymeshes that are in 3 dimensions, please use the previous importer for v5. See link on the right.
VERSION NOTES:
0.1 - new compiled c# based plugin for XSI version 6+ only - imports lines, arcs and circles
Tips for workflow: XSI struggles with displaying a lot of curves on screen (I have Radeon 9800 pro), so try to reduce the curve count as much as possible. Work with snap switched on. Holding down snap (ctrl) on the keyboard results in terrible lag with big curvelists.
**Please note** - this plugin does not run in a workgroup over a network - please install on local harddrive.
POSSIBLE ADDITIONS UNDER CONSIDERATION:
- block importing (to remove the need to explode everything in a CAD program)
- seperate layer data into seperate objects
- more elements
- rewrite 3d importer in C# to evaluate performance











