Categories
development

New project for iPhone/iPod Touch

Last week we started a really cool project for the Apple iPhone/iPod; the name is not official so I will call it “iSomething“.
With iSomething you can simply overlay 3D meshes on real photo, creating a sort of augmented reality. iSomething does not work with movies and requires a quick interaction with the user after the shot.

At the moment I have no official images or videos of iSomething, so this post have to wait a little to be completed, but this confirm how we work at office and how my tech-ideas are transferred to reality…it’s a great satisfaction to see ’em working!

Categories
graphics various

My second book

Yes, it’s official!
I’m writing a new book that deeply explains all the steps behind the making of a videogame. As technical figure, I will concentrate on technical aspects like pipeline and workflow management, plugins and software production, research and development impact, commercial 3D packages Vs custom one, game engine and other interesting subjects.

For thoose who doesn’t know, I just wrote a book about 3ds Max Design and Architecture, in wich I explain in 400 pages all the tricks behind offline rendering.
HERE is the link of the pubblisher and HERE is a post about it.

My ISBN codes
ISBN-13 9788820341558
ISBN 8820341557

Categories
development graphics

New 3ds Max Script: PLAYSYS | B.M.R.

We finished a new Autodesk‘s 3ds Max script that allow us to batch create textures, assign materials, hide objects, set properties, renders scene, add channels , and save in RPF file (plus .png).
it could appear unuseful if you have to render 3 or 4 times in a day, but for some projects we should need to create lot of renders (in the current one about 58.000) and it would become a mess without this script.

So, I’m glad to introduce our new friend: PLAYSYS | B.M.R.

The workflow is really simple:
– prepare your 3D models in the scene
– prepare the texture you’ll need to apply
– select the render settings
– press the “Create” button

the utility will do the remaining things, mixing 3ds Max possibilities with BMR’s functions. After a little you will find all your renders ready to be used. The utility will name the images with: $filename_$object_$texture_#progressivenumber.extension

Categories
development graphics

Sub Surface Scattering | mental ray – part 2

Some time ago I wrote some notes about Sub Surface Scattering in mentalRay. Here I post some screens of the material I used in my turntable test, using Knoss’s Arak model.

As you can see the shader is quite complex, so start exploring this simple one and take time to understand how parameters works.

Here is a schematic description of the maps I used

The next one i a new scheme that can give better results. At the moment I’m still working on this structure. I have to prepare new textures for the Subdermal and Epidermal channels, but I will do them for a new model I’m working on.
Enjoy

Here is the material I used. You’ll have to substitute the two required textures with your own, btw, theese are only for displacement and bump. Feel free to use it and share.

Categories
development various

PlaySys Percent – Tool gratuito per conversioni tra valori (IRPEF) netti e lordi

È finalmente disponibile PlaySys Percent, il software che semplifica il calcolo delle diverse percentuali tra lordo e netto.
Scaricalo ora da QUI, è gratis! [52.1 Kb, versione 1.1 corretta grazie alle indicazioni di Andrea Benedetti]

Più volte mi sono imbattuto nella trasformazione tra valore netto e valore lordo (9 volte su 10 per via dell’I.R.P.E.F.), così ho deciso di sviluppare questa semplicissima applicazione che mi auguro possa tornare comoda a qualcuno.
Molti cadono nell’inganno che per ricavare il lordo da un valore netto basti sommare a quest’ultimo semplicemente la percentuale (in questo caso 20%). Così non è, infatti quando si calcola il netto di un valore si procede in maniera opposta, ossia si parte dal lordo e si sottrae il 20%. Purtroppo però, se Y = X – 20% non si può dire che X = Y + 20%.A questo punto entra in gioco la mia applicazione: basta inserire il valore netto e la percentuale da applicare e verrà ricavato il lordo.
Ho aggiunto anche una funzionalità incrociata ossia, dato un lordo ed un netto ricavo la percentuale tra i due e dato un lordo e una percentuale ne ricavo il netto.

Non sei convinto? esegui con la calcolatrice 100 – 25%, otterrai 75. Ora fai l’opposto, esegui 75 + 25%, non otterrai 100 :)Buon divertimento con PlaySys Percent! [52.1 Kb]

Categories
development graphics

DACS 1.7

DACS is the acronym for “D3v Anti Crash Saver” and is a little utility I wrote on 23th December 2005 (I always have a log inside my project folders ;)) and that prevents the common damage of scenes, caused by a crash of Autodesk 3ds Max.
Who uses this 3D package for knows for sure how frustrating it is to re-work on a scene because a crash deleted it. In fact, while 3ds Max crashes, the scene is damaged and the file will contain a little chunk of the entire work; this happens about 1 time on 10 crashes.
After this, when you try to reopen your file, 3ds Max says that it is corrupted and the data are completely lost.

There are 3 solutions to this problem:
– Do a frequent backup of your folder and files
– Increment your scene version with a progressive number
– Use my DACS 😉

The utility consists on a simple script of 3 Kb and it is loaded in the common way from the MAXScript menu. You can use the StartupScript folder too. In the previous image you can see how it appears when loaded.
As you can see, it automatically finds the file name and the path of your project. This script was written before that Autodesk introduces the new folder structure, similar to the one adopted in the old versions of  Maya. This means that DACS saves the files in the same folder of the project (this is yet in my TODO list).

At this point you can start working safely: my script will inform you about the time from the latest save and when you press the button “Save Files” it will save your file plus two additional files, completely identical.
If your system crashes or the light goes away or the operative system gets stuck, DACS will maintain the integrity of the scenes, at least one of them 😉

Many thanks to Giorgia Foresta that spent time correcting my terrible english!

Categories
development graphics

DMRB 2.2

DMRB means D3v Multi Render Basket and is a little script I wrote about 3 years ago.
The idea behind comes from Lightwave’s fPrime, a quick semi-realtime renderer that is fully integrable in the 3D package and permits to render with almost anything doable inside it.
DMRB uses the default renderer to compute the image so, if you are working with mentalRay you can benefit of all it’s features such as Sub Surface Scattering, Final Gather, Global Illumination, Caustics, and so on.
Of course if you use other internal third party renderers (Scanline, VRay, FinalRender, Brazil) it still works fine!

In the video below you can see it with a very simple scene, that permits me to show it’s usefullness.
Note that it is very different than the ActiveShade because DMRB shows the entire result, without optimizations (btw, some can be enabled on the panel) and again, it works with all the major renderer.

Categories
development graphics various

PlaySys 1.0

Oggi ho trovato questa intervista che ho rilasciato i primi di Ottobre presso l’Italian Videogame Developer Conference, evento in cui ho partecipato come casa di sviluppo italiana e come sponsor.

BREVE INTERVISTA IVDC 2009

Rileggendo quello che ho detto dello startup di PlaySys, mi sono venuti in mente diversi ricordi (alla faccia di chi sostiene che io non abbia un cuore), così ho deciso di pubblicare alcune immagini di PlaySys 1.0 🙂

Today I red the linked interview I had at the end of the 2009 during the Italian Videogame Developer Conference.
I spoke about PlaySys and the videogame development research we did, and was a really important fact for the italian game industry. The previous post spoke about an Italian trouble with business managemant, and is one of the causes behind the videogame undevelopment.

Btw, I decided to post some images of PlaySys 1.0, captured in the firsts weeks of the studio.

Alessia e Maurizio
Gianni
Luca

Pollice tra ALT e SPAZIO, medio su MAIUSC e anulare su CTRL…unica eccezione era Maurizio che teneva tutte le dita, di entrambe le mani, su Alessia 24/24 h

Categories
development graphics

Sub Surface Scattering | mental ray

After some weeks of work with 2D graphics, I finnaly got back to 3D tasks.
I decided to spend some time playing with Arak and the Sub Surface Shader offered by mental ray, inside at 3ds Max 2010. I tweaked the parameters for 1 hour and have to say that they are really quick to learn and use.
The model I used is enought simple and lite for rendering tests.

The first problem is that 3ds Max guide has no section that covers theese parameters: if you open both the official 3ds max guide or the deeper mental Ray’s one, you will not find lot of informations out of the theory behind SSS and how it is simulated/computed.
I try to explain something here, maybe someone else will find theese tips useful.

The first thing to do is to understand a very important fact: world units and scale importance.
Sub Surface Scattering renders the surfaces, considering the quantity of light that is absorbed and scattered trought the model.
If you have a thin wall, let’s say 2 millimeters thickness, a strong light setup and a scatter propagation on 1 meter, for sure you’ll not obtain what you expect.

Now let’s apply a Sub Surface Scatter shader (you must enable mental Ray if you changed the renderer for production purpouses). The one I selected is the simplest SSS shader offered by mental Ray, and we must understand how it works before proceeding.

When working with SSS Shaders you have to think at the color of the unlit surfaces, the color of the enlight areas and the specular, exactly as a traditional shader PLUS a color of the mesh penetrated by light. Now let’s see what the shader offers to us in the Diffuse Sub Surface Scattering rollout.
The first important parameter is the numeric value called “Unscattered Diffuse Weight”. This parameter determines the mix of the traditional shaded areas and the scattered one. Imagine it as a sort of blending beetween two different materials, one simple and one with light penetration capabilities.
For better understand this value, try to set it at 1 and render and then set it to’ 0 and render again.

Depending on your light setup, you will have a render similar to this: the first with value = 1 has a strong value of the Unscattered Diffuse Color while the second with the value = 0 has a null Unscattered Diffuse Color and a full Scattered Color.
Watch the Unscattered Diffuse Color in the parameter just up, that’s the color of the first render.
Now that we know what is and how to change the Unscattered Color we need to understand what is the Scattered Color.

In this image I set to 0 the Unscattered Diffuse Weight and let the shader to compute the Scattered Color, based on the two colors available (Front and Back) plus their weight. Look at the image descriptions, colors and values and you’ll get it, it’s really simple how it works!

Again, give a look at my values. I changed a little the front and Back color’s weights and changed the radius+depth too. Consider that my model has a radius of 10 centimeters. At the beginning of this article I wrote about the importance of the scene scale, now you know why.
Note that you can diminish the Unscattered Weight changing the color instead of the value. For example, if you set the color to pure black 0.0.0 and have a weight of 100, the result is the same as a random color plus a Weight of 0.

Generally I use this trick in my diffuse color in the standard materials, and here in the SSS the standard diffuse is the Unscattered Diffuse Color. As you can see 3ds Max lets you use a numeric value or a flat color by default, but you can change it with a procedural or textured one.
In this case I used the Falloff shader on the Diffuse Color to obtain a Maxwell style material. Generally I work mostly with the Next Limit’s renderer and I really like how it treats shaders.
I simply put a dark brown unscattered color for perpendicular camera rays and a medium grey/blue for the parallel rays. I changed the transition value, adding a Bezier key and here we are:

Not bad, the mesh now has a big rim light effect that detach it from the background. Remember that using low values is always preferable because you’ll obtain a perceptible effect and avoid to make it too much synthetic.
Now our teapot looks really interesting respect the beginning, but you can notice that it has no specular component. This is due to my previous tweak at the Specular Color inside the Specular Reflection rollout. I changed it to pure black, that means no specular values and no reflections. Now is time to change the color and the Shininess value.

In the render above you can see the specular color and it’s roughtness.
We are ready for our final render but before we need to change the quality values at the top of the shader. Set the lightmap value at 100% of the render size (the Light map of the Sub Surface Scattering effect) and the computation sample.
Lower values = low resolution but quick preview
Higher values = high quality but long render time

Enlarge this image to see the difference with the previous. Maybe I exagerated with parameters, this is only an example and was done because the scene is really simple and quick to render, but remember that in production timing theese parameters must be precisely calibrated, expecially in animations.

This is all for this simple mesh and article. Now I apply the material to my mesh and render again.
The result is really important: if you change the light setup, the scene or simply the mesh, the result can change drastically. I suggest always to proceed step by step in scene construction and in parameter tweaking.

This is not a professional result so I will have to work on it a little more. The following video is obtained working with a more complicated SSS shader that considers displacement too.

Give a comment if you find this post interesting.

Categories
development graphics

TheDreamers | Anaglyphic Stereo3D

Giovedì ho tenuto una lezione sulla stereoscopia e sulla computer grafica basata sullo Stereo3D.
La lezione è stata un piacevole dibattito con gli studenti su pro e contro di questa tecnologia, affaticamento encefalo/ottico, illusione di tridimensionalità, funzionamento ottico umano (a livello superficiale, nessuno di noi è medico) e devo dire che la risposta della classe è stata particolarmente positiva; gli studenti si sono dimostrati nettamente più interessati rispetto alle lezioni su shader, Mappe UV, mipmapping, supersampling e così via 🙂
Thursday i did a lesson about stereoscopy and the way to obtain it with CG images. During the lesson I saw the students more interested respect the previous lessons about Uv mapping, shaders, mipmaps and other tech stuff. I developed for the lesson a particular rig form 3dsMax, that permits me to obtain Stereo3D images perfectly editable in compositing with After Effects or Combustion.
Ho presentato alla classe anche un rig particolare di camera realizzato in poco più di un’ora, in grado di ricreare situazioni Stereo3D con 3dsMax e After Effects. Parte del processo è ancora manuale, ma un semplce plugin per After Effect potrebbe permettermi di completare i vari passaggi con 1 solo click del mouse.
Questo è un risultato di quanto ottenuto con la mia tecnica
This is a quick result

Da questa lezione sono emerse aspettative e richieste per la possibilità di vedere una scena in Stereo3D realtime e, nello specifico, applicata ad uno dei progetti di PlaySys…ecco di seguito il risultato 😉
The lesson gave birth to an idea to use this technology in realtime, so we applyed Anaglyph Stereo3D to one of our projects already seen on this blog: TheDreamers. The result is in the following video (You need glasses with anaglyph lenses to appreciate the results).