More good news! CGF will be Shared Source!
by Lukas Joergensen · 01/21/2014 (6:49 am) · 14 comments
CGF will be free
Thats right, I will release it for free, under WLE Shared Source License (I will explain this license later on).I've done some consideration, and I feel this is the best way to get CGF out to you ASAP, and it's time for me to give a little back to the community.
What is CGF?
Transparency
So as I tend to run a 100% transparency policy, I'll be happy to answer any concerns or questions you might have. I'll also be be blunt and say right away that of course I do have some plans for personal gain, with this product.Either I'll be able to develop some extensions (or let other people develop extensions) to the source, basically add-ons and improvements (e.g. a new UI) and sell them through the WLE store.
Or, if the main repository sees a lot of love from the community, then I'll just stand with a great product that I can use for my own development and have saved some of the time it took to develop it.
Release date
Soon(TM), I wont release it right away. I will be prettying up the UI a bit, refactor the source code and adding some more functionality as well as create a roadmap etc. Expect it to take at least a month before the source code is released.However the wheels are already turning!
WLE Shared Source License
Okay, it's not exactly released under MIT, so it's not all fun and rainbows.WLE Shared Source License outline:
- You are free to download the source code.
- You are free to modify and recompile the downloaded source code.
- You may NOT under any circumstances redistribute and/or republish the source or any derivative works. Except on the official WLE forums, or on the official GitHub repository.
About the author
IPS Bundle available at: https://www.winterleafentertainment.com/Products/IPS.aspx
#2
To begin with, I'm gonna make it work for PostFX's. That said, I am making it completely modular, so we might have a "PostFX" branch and a "Material" branch and an "AI" branch which each does seperate things.
Here is the current solution structure:
Source/
Source/Modules
In here, all the nodes are written in class libraries which will be compiled to .dll's that can be added and removed without recompiling the code.
Source/CGF
This library contains all the interfaces and general classes the CGF uses for compiling, saving and loading etc..
Source/Graph
This is a modified version of the Graph library by LogicKing
Source/PostFxUI
The Windows Form UI for PostFX's
Source/T3DHLSLAPI
The API used for .hlsl files in T3D.
This includes some interfaces for identifying what type of nodes you deal with, a DependencyParserStrategy, a HLSLCompiler and a T3DPostFxCompiler.
If you want to add support for something else, you will just have to create a custom UI file, and write your own compiler.
And ofc, the different nodes you need.
It's a bit of work, but something like an AI behaviour tree is definetly possible (but also very much depending on the implementation of the AI).
01/21/2014 (8:09 am)
@Kory, said simply, the license basically means that all development happening on the CGF has to happen through the official channels (The official repo and the WLE forums) so you are not allowed to take the product, and begin your own branch of it.. You are, however, allowed to contribute to the official repository, and you are allowed to publish all the code you want, as long as it is on the WLE forums.To begin with, I'm gonna make it work for PostFX's. That said, I am making it completely modular, so we might have a "PostFX" branch and a "Material" branch and an "AI" branch which each does seperate things.
Here is the current solution structure:
Source/
Source/Modules
In here, all the nodes are written in class libraries which will be compiled to .dll's that can be added and removed without recompiling the code.
Source/CGF
This library contains all the interfaces and general classes the CGF uses for compiling, saving and loading etc..
Source/Graph
This is a modified version of the Graph library by LogicKing
Source/PostFxUI
The Windows Form UI for PostFX's
Source/T3DHLSLAPI
The API used for .hlsl files in T3D.
This includes some interfaces for identifying what type of nodes you deal with, a DependencyParserStrategy, a HLSLCompiler and a T3DPostFxCompiler.
If you want to add support for something else, you will just have to create a custom UI file, and write your own compiler.
And ofc, the different nodes you need.
It's a bit of work, but something like an AI behaviour tree is definetly possible (but also very much depending on the implementation of the AI).
#3
I wrote it this way (seperating the compiler from the UI etc..) for complete modularty, so you can be developing exactly what you want improved.
Want a better compiler? Just tinker with the T3DHLSLAPI library.
Want your own UI? Want more features or just a simplified UI?
Just edit the WinForms application.
Oh btw, it's completely MONO compliant, I have yet to test it on a Linux computer, but I'm targetting the mono framework when I compile, so it should work for cross platform.
01/21/2014 (8:13 am)
Also, I should add:I wrote it this way (seperating the compiler from the UI etc..) for complete modularty, so you can be developing exactly what you want improved.
Want a better compiler? Just tinker with the T3DHLSLAPI library.
Want your own UI? Want more features or just a simplified UI?
Just edit the WinForms application.
Oh btw, it's completely MONO compliant, I have yet to test it on a Linux computer, but I'm targetting the mono framework when I compile, so it should work for cross platform.
#4
01/21/2014 (8:20 am)
That sound great :) Mono is a good idea!
#5
01/21/2014 (9:10 am)
Do the hlsl and postfx shaders produced by the program fall under the WLE licence as well?
#6
Just.. Don't screw me over by making CGF generate CGF... :P
01/21/2014 (9:13 am)
Ah no, you have all rights of anything generated through the CGF and you can do with it what you want, thanks for reminding me to add that to the license!Just.. Don't screw me over by making CGF generate CGF... :P
#7
01/21/2014 (11:20 am)
Amazing stuff!
#8
Or will HLSL be taken out of the tool altogether and replaced with GLSL?
I am asking as I would like to understand the shader code not just connect the dots so to speak. :)
01/25/2014 (9:51 pm)
So question will this work with other engines/Frameworks that Support HLSL?Or will HLSL be taken out of the tool altogether and replaced with GLSL?
I am asking as I would like to understand the shader code not just connect the dots so to speak. :)
#9
I believe the generated hlsl code will fit other engines/frameworks, but small adjustments may be needed for taking care of the variation there is between engines.
I intend to make a very low-level implementation of the HLSL language to begin with, which means you can manually translate the body of the main function, simply by reading the name of the nodes.
That would let you understand the shade code and not just connect the dots.
HLSL will not be replaced by GLSL, but it's very likely that both will be possible with CGF.
01/26/2014 (2:51 am)
@BenjaminI believe the generated hlsl code will fit other engines/frameworks, but small adjustments may be needed for taking care of the variation there is between engines.
I intend to make a very low-level implementation of the HLSL language to begin with, which means you can manually translate the body of the main function, simply by reading the name of the nodes.
That would let you understand the shade code and not just connect the dots.
HLSL will not be replaced by GLSL, but it's very likely that both will be possible with CGF.
#10
I am very excited for the tool to be released :D
01/26/2014 (6:11 pm)
@Lukas - Ok, Sounds awesome!I am very excited for the tool to be released :D
#11
I'd like to speak to someone regarding potential work in the 2D realm. My e-mail is listed in my profile.
02/12/2014 (1:29 pm)
Hey Lukas. I tried contacting WinterLeaf via the WLE website, but the message would not go through:System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception) at System.Net.Mail.SmtpClient.Send(MailMessage message) at OnyakTech.Forms.FormsView.SendEmails(String SendTo, String SendFrom, String Subject, String Body, String ReplyTo, String Cc, String Bcc, Boolean SuppressErrorMessages, Boolean AutoAddEmails)
I'd like to speak to someone regarding potential work in the 2D realm. My e-mail is listed in my profile.
#12
I'll ask Paul to contact you, he'll probably get back to you later today.
02/13/2014 (12:53 am)
@Michael thanks for reporting that error I'll redirect it to our webdeveloper.I'll ask Paul to contact you, he'll probably get back to you later today.
#13
Check your inbox plz.
sorry about the error on the Contact form. We will see about getting that addressed ASAP
02/13/2014 (2:40 am)
Michael:Check your inbox plz.
sorry about the error on the Contact form. We will see about getting that addressed ASAP

Torque Owner Kory Imaginism
innovative imaginations
One quick question will this just be for materials or are there plans on extending it to lets say a AI behavior tree type deal, similar to what cry engine has?