How to store a state in a Nova scene

by Frédéric Colin 1. September 2010 09:03

There are many possibilities to store user data inside a Nova Scene. That's why I've just added a new sample on Nova Wiki.

If you are interested, just have a look here.

Run Nova Studio on Common Language Runtime 4.0

by Frédéric Colin 24. August 2010 16:58

Maybe you wonder why it may be useful to run on CLR 4.0?

Well, I will say mainly for many Microsoft .NET Framework 4.0 news. As an example (it’s not the only one), if you want to use Windows Communication Foundation 4.0 in Nova Studio Plugins.

If you want to know more about this tip, just go to our wiki.

Scripting tip: change Nova Standard Material textures on the fly

by Frédéric Colin 27. July 2010 17:51

I continue my series of publication on Nova scripting by demonstrating the ability to load your materials' textures on the fly from external files.

That happens here.

Enjoy!

 

Nova Script Editor

by Frédéric Colin 20. July 2010 18:08

Do you know that some Visual Studio Shortcuts are available in the Nova Script Editor. Here is a partial list:

  • ctrl-S => save the script
  • ctrl-K + ctrl-C => comment all selected line
  • ctrl-K + ctrl-U => un-comment all selected line
  • ctrl-space => launch intellisense list
  • ctrl-M + ctrl-O => collapse all code to definitions
  • ...

Scripting tip: handle user events triggered from Action Builder

by Frédéric Colin 7. July 2010 23:58

Sometimes, it may be useful to trigger user events from the Action Builder in order to process them in Nova Script while continuing current execution tree.

That's why I've just published on the Vertice wiki a little tip on this subject.

Enjoy!

Change scene quality on the fly - Part II

by Frédéric Colin 24. June 2010 23:26

A corollary question to my last post was also whether it was possible to automate something about this. Namely, something that would automate the quality adjustment based on the machine behind the scene.

You have to know that Nova Engine already does a part of that kind of things when used rendering options are not available on the graphics card. But the question was more about an artificial intelligence that will adapt rendering quality. In fact, in such a way, Nova does not yet include an artificial intelligence.

So, I was thinking without such a tool how today I will implement easily and in a short time this requirement if I had to develop it. Once more, simple heuristics can always help us on these complex issues. The best heuristics I was thinking about, would be to simply use the current scene FPS to determine if the scene quality may be increased or decreased. Then, after a predetermined (ie: after each x frames rendering), the system could check if the overall quality should be increased or decreased. And this can easily be done using Nova Scripting and Action builder. This complete the proof!

However, if we wanted to go further in that kind of solution, we will have to study the current scene to determine which will be the best quality options and channels to enable to disable and in which order. Moreover, we will have also to study what will be the quality scale to hold.

In my previous sample, I have arbitrarily decided that the level would include three stages of quality, but why not more? It is still a topic that should be studied further.

Finally and in order to set this little heuristic, we should provide the scene designer a way to decline (or not) in quality such and such options. It is understandable that with the addition of such features a small artificial intelligence engine would be perfect.

Change scene quality on the fly

by Frédéric Colin 24. June 2010 22:45

A very good question I was asked recently about the possibility of change on the fly graphics quality of a scene. It's indeed possible in different ways:

  • Using Nova Studio: just go to the "Developer" menu and click on Engine Options:

This options will display the following panel that will allow you to enable or disable any Nova quality options and channels and therefore the speed of rendering.

  • Using Nova scripting, Nova plugin model or Nova SDK. Indeed all Nova quality options and channels are available through Nova Object Model. In the following script, I first create a slider that will change on the fly Nova Engine option according 3 values ranges:
    • From 0.0 to 1.0 excluded: main quality options are disabled.
    • From 1.0 to 2.0 excluded: some quality options are enabled.
    • Else: all quality options are enabled.
Class Script

    Private slider As NovaSlider
    Private currentScene As NovaScene 
    
    Public Sub New(scene As NovaScene)
        currentScene = scene
        slider = Scene.CreateSlider()

        slider.Top = 10
        slider.Left = 10

        slider.Min = 0.0
        slider.Max = 3.0
        slider.Value = slider.Max
        slider.Width = 300
        slider.ID = "SliderQualitySensor"
        slider.Text = "Quality Sensor"
        slider.RelativeWidth = False
        slider.Visible = True
        
        AddHandler slider.ValueChanged, AddressOf manageValueChanged
    End Sub

    Private Sub manageValueChanged(ByVal o As Object, e As EventArgs)
        If  slider.Value >= 0.0 AndAlso slider.Value < 1.0 Then
            changeToLowQuality()                
        ElseIf  slider.Value >= 1.0 AndAlso slider.Value < 2.0 Then
            changeToMediumQuality()
        Else
            changeToHighQuality()
        End If
    End Sub
    
    Private Sub changeToLowQuality()
        currentScene.Engine.QualityLevel = 0
        NovaEngine.Shadows = False
                
        NovaEngine.BumpChannel = False
        NovaEngine.SpecularChannel = False
        NovaEngine.ReflectionChannel = False
        NovaEngine.RefractionChannel = False
        Novaengine.EmissiveChannel = False
        Novaengine.AmbientChannel = False 
        NovaEngine.ParticleSystems = False
        NovaEngine.MirrorMatrixActivated = False
    End Sub
    
    Private Sub changeToMediumQuality()
        currentScene.Engine.QualityLevel = 1
        NovaEngine.Shadows = False
                
        NovaEngine.BumpChannel = True
        NovaEngine.SpecularChannel = True
        NovaEngine.ReflectionChannel = True
        NovaEngine.RefractionChannel = False
        Novaengine.EmissiveChannel = False
        Novaengine.AmbientChannel = False 
        NovaEngine.ParticleSystems = True
        NovaEngine.MirrorMatrixActivated = False
    End Sub
    
    Private Sub changeToHighQuality()
        currentScene.Engine.QualityLevel = 3
        NovaEngine.Shadows = True

        NovaEngine.BumpChannel = True
        NovaEngine.SpecularChannel = True
        NovaEngine.ReflectionChannel = True
        NovaEngine.RefractionChannel = True
        Novaengine.EmissiveChannel = True
        Novaengine.AmbientChannel = True 
        NovaEngine.ParticleSystems = True
        NovaEngine.MirrorMatrixActivated = True
    End Sub
    
    Protected Overrides Sub Finalize()
        RemoveHandler slider.ValueChanged, AddressOf manageValueChanged
        currentScene.Widgets.Clear()
    End Sub
End Class

SliderManager.nsr (2.83 kb)

Sending a sms through Nova Scripting

by Frédéric Colin 6. June 2010 21:46

Many of you asked me to provide Nova script and assemblies used for my virtual intrusion detector demonstration that sent a sms. So here's the script:

Below, you will find:

  1. 64 bits GSMCOM assemblies
  2. the script as a nsr Nova file.
  3. The C# project to send the sms (I encapsulated the well known GSMCOM assembly)

Sms.rar (52.58 kb)

Enjoy!

 

Unlucky?

by Frédéric Colin 6. June 2010 19:13

First of all, thank you very much to all attendees that followed the session we animated Mitch and myself at the BDC in Aix en Provence (France). Behind the scenes of a session are sometimes surprising. So here is a little anecdote.

One of my demonstration was to illustrate an funny plugin into Nova Studio 2010. Here it is the architecture of my demonstration:

The main objective was to use 3 motorized IP webcam inside a WPF Application and a Nova Studio Plugin. I used Windows Communication Foundation announcement service to detect IP cameras. Then, each client application was notified from the arrival of cameras on the network through WCF announcement.

But 30 minuts before the session during my last demonstration checks, 2 of 3 IP cameras have decided to no longer work (processor off), a network cable has blown and the network card of my laptop acting as a server has also decided to stop working. I rebuild my demo with only 1 IP camera and with clients and services on my laptop. At the point where I was, I was waiting for a meteorite!

Finally the demonstration worked well with the material that I had. The day was very interesting but rough.

Nova 2010 Documentation

by Frédéric Colin 14. May 2010 22:23

It's my pleasure to announce the birth of our last web site, the little wiki.

As you can see it, we decided to bring our new documentation on Nova by Vertice products as a live wiki for many reasons such as:

  • Better accessibility,
  • Better updates,
  • Wide range of writers through Nova Community.

Indeed, you will have the possibility to participate in our wiki. If you are interested, juste create an account here. Of course, there will be a validation workflow before publishing any comments or updates. But if you are interested, just create an account on the wiki or drop me a comment on this post if you have any question.

We still have a lot of work to provide both on the documentation and community aspects, but I assure you that you will not be disappointed in the coming months. We are going to give the place it deserves in the community that exists in Nova worldwide. When I created this blog and I introduced myself, I told you that I've always been very involved on the community aspects of Microsoft development technologies. I strongly believe the community aspects in the software world and I will put all my energy to develop the brand Vertice.

So, since 2010 Range is RTM, it's time for Vertice to develop Community aspects. This wiki will be the first building block of what we will make thereafter.

Stay tuned!

Disclaimer
The opinions expressed herein are the author own personal opinions and do not represent their employers' view in anyway..

© Copyright 2010 Nova by Vertice Team