Jump to content

FEATURE: OpenGL 3 Renderer


Recommended Posts

@@DT85 - the formats and tangents/binormals issue is resolved in my mind. I will work on an xNormal exporter plugin, as we discussed, to write out our *.GTB file... which will have the benefit of supporting all mesh formats that xNormal can import.

 

I will also work on creating an MD3 mesh importer for xNormal so that we have a sync'ed workflow for the MD3 format.

Link to comment

Well you guys can worry about the tangent sync stuff. I believe SomaZ, is on a roll with some other cool shit. :D

Right now, I'm so wasted, but there will be some nice progress. Literally sitting in a club, getting some rest from the rest of the world. I'm very happy, that there are some people, trying to fix or improve stuff of the renderer.

 

A big thank you, to all of you.

Tempust85 and Psyk0Sith like this
Link to comment

I suppose I still can't convince you to write some plugins for Mod Tool to allow GLM import only, MD3 import and export?

I wish I had the skill to write something from scratch for Softimage... but I don't, it took me a long time just to wrap my mind around the 3ds Max SDK and XSI File Transfer Kit to fix the dotXSI exporters. If you can find me source code for a Softimage/ModTool xsiaddon exporter... maybe the XSI SDK has an example. If you agree to work with me, we can try to write an MD3 exporter. If ModTool has a scripting language you could learn to write an exporting script.

Link to comment

Mod Tool uses VB script and J script, I use VB script for my rigs a lot but I'm mainly a copy/paster, not super knowledgeable. I managed to pull of making custom floating tool menus that had buttons that would control the rig as well as making a synoptic page which was pretty much a HTML image map. Kinda basic stuff.

 

Softimage doesn't use a fancy scripting language exclusive to the software like Max and Maya do, they chose to keep it simple so any knowledge of scripting can pretty much be used, it's just learning the interface like any other program.

Link to comment

It's either tangent or binormals-- not both. If you will look at the dot XSI file in a text editor you will see that it is one set of vectors or the other not both... even though it will erroneously create both xsi_customPset templates. However, the color data represents which ever property you set first.

 

that's bad.

 

we need both.

Link to comment

I'll have to send you a file some time because I can export with both and reimport and they both are there. Maybe I'm just confused and 1 of the custom pSets aren't doing anything.

 

Exactly... the second XSI_CustomPSet does absolutely nothing.  Whichever property ("Tangent" OR "Binormal") gets applied first is the one the "COLOR" data in the SI_Shape template represents.  I exported out all possibilities of applying these two properties (tangents only, binormals only, tangents & binormals, binormals & tangents) and compared the "COLOR" data.  In the "Tangent then Binormals" order-- the "COLOR" data matches the "Tangents Only" data; in the "Binormals then Tangents" order-- the "COLOR" data matches the "Binormals Only" data.

Link to comment

If the format can't do what we need it to do then why stick with it? I know it's a lot of work but if the format was considered out dated 12 years ago when they introduced dotXSI 5.0 then it isn't viable for the future and even that format can't do what we need.

Link to comment

If the format can't do what we need it to do then why stick with it? I know it's a lot of work but if the format was considered out dated 12 years ago when they introduced dotXSI 5.0 then it isn't viable for the future and even that format can't do what we need.

The dotXSI format does everything we need.  You are free to set either the Tangent property (based on u-direction of UV coordinates) or the Binormal property (based on v-direction of UV coordinates)...

 

xNormal 3.17.16 does not use the "COLOR" data contained in the dotXSI file... I've confirmed this with its developer.  xNormal ignores it and computes the tangent basis vectors solely from the mesh's vertex normals and UV coordinates.  The xNormal developer said in the next release, they could add support for the way Softimage does a color-hack to store one of the tangent basis properties (either Tangent vector or Binormal vector).  Or you could choose to not use "COLOR" at all, and let xNormal compute ALL tangent basis vectors from the triangle's vertex normals and UV coordinates. 

 

xNormal supports all major 3D file formats... and it computes the tangent basis vectors for all of them.  I don't see any issues or problems.

Link to comment

EDIT: here's something I prepared for @@SomaZ yesterday: https://www.dropbox.com/s/9oy1fxh00s3zxh3/JKA_GL2_TestMats.rar?dl=0

These are 10 Sample Materials from Substance Designer 5.6 exported for GL2

and my fanned cobblestone Material: https://www.dropbox.com/s/9ygrfzaqme430xd/cobble_GL2.zip?dl=0

 

All of these are setup with a heightmap in the normalmap alphachannel for parallax mapping.

If you want more test Materials for your floors and Walls @@DT85 :P

Link to comment

Also, can the dynamic lighting (or whatever) make use of IES light data?

Right now, it's not possible to use IES data for dynamic lighting. Though I though of implementing it with the other types of dynamic lights. Well. let's see if I get to that point in the near future.

 

@@DT85 Nice shots. The difference of deluxe mapping gets more obvious when you dissable cubemapping.

 

@@Almightygir Deluxemapping is part of the map compiler. It adds a texture to all the compiled brushes and model work, just like the lightmap, but instead it saves a vector that points to the original light positions (like some kind of normal map). If there is more than one light affecting the surface, the light positions get averaged. This can look really bad if there are some lights from very diffenrent angles affecting a surface. Pro: No need for dynamic lights and support for older maps (as long as they where compiled with deluxemapping), also precompiled lightmaps, Con: Can look bad in some cases.

Link to comment

So what is to be done about AO? Will we have support for it as its own texture, or can we simply apply it to the albedo?

 

NO

 

NO NO NO NO!!!

 

giphy.gif

 

 

AO is AMBIENT occlusion. it masks the AMBIENT contribution in the shader pipeline. by applying it directly to the albedo, you're basically sticking a finger up to the PBR system which is specifically designed to give you consistent lighting, by saying "i want permanent shadows in this exact position, fuck where your lights are".

minilogoguy18 likes this
Link to comment

AO shall go into the specular map blue channel. Don't apply it to the albedo. We would loose correct specular color for this.

So maps we need for pbr:

Albedo RGBA:

RGB Albedo Color

A Transparency (optional)

Specular RGB

R Roughness Grayscale

G Metal Mask

B Occlusion (Cavity Occlusion, Ambient Occlusion or a combined one, it doesn't matter, just artists choise)

Normal RGBA

RGB Normal Map

A Height Map (optional)

 

Thats material layout right now. Though Occlusion doesn't get handled right now. Will do this when ready with IBL stuff.

Link to comment

Also, not sure of how your system is set up, but a common method of storing AO at the moment is to put it into the red channel of a packed texture map:

Red = AO

G = Roughness

B = Metallic (not sure if this one applies, does your shader system use metalness or specular for reflective input?)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...