PayDay
(Christoph Timmermann)
#121
So this happened after the first compile with normal mapping:
It kinda works, but only in orthographic mode? I only see some edges at the screen in perspective, and the model gets kinda black when I rotate the camera.
So I broke the shader, but atleast it’s something. 
3 Likes
Lazer72
(Lazer72)
#122
Nice work.
Get well soon! Have chicken soup!
2 Likes
I cannot wait to get back into modding and reviving my Monkey Madness mod!
For those who dont know what the Monkey madness mod was, It Twas my first ever mod and people loved it
Floating monkey heads of doom
Also love this program 
1 Like
Xercodo
(Xercodo)
#124
BRING SAJUUK TO * monkey screech *
2 Likes
PayDay
(Christoph Timmermann)
#125
Little preview of the next version:
Obviously the specular mapping works, it was just a multiplication though.
No normal mapping for the next one, I put that into another branch to work on it later.
The problem seems to be the lighting calculations in tangent space (needed for proper normal mapping).
I am working on navlights now, I suppose their parameters are:
- NAVL - Name - String
Used to distinguish between navlights.
- Type - Type - String
Type of the light defined in some game files. (What is the type when the navlight has no type parameter?)
- Sz - Size - Float
Radius of the point light?
- Ph - Phase - Float
How many seconds the light phase (animation) is shifted? (offset)
- Fr - Frequency - Float
How many times the navlight blinks per second.
- Col - Color - Vector3 (three floats)
Color of the light. (normalized)
- Dist - Distance - Float
No idea?
-
Flags
Sprite, HighEnd, …?
This is where I absolutely have no idea. I never touched navlights.
So please help me on this one. 
I need to exactly know how the navlights behave in-game, for a WYSIWYG feature.
2 Likes
Dom2
(Taiidan Republic Mod)
#126
This should shed some light on the topic. For this nav light…
NAVL[NavLight_BigBay]_Type[nav_bays]_Sz[7]_Ph[0]_Fr[0]_Col[0.333333,0.941176,1]_Dist[700]
…we were given this explanation:
1 Like
PayDay
(Christoph Timmermann)
#127
@Dom2 Thanks, that makes things clearer.
Now the only thing I need is all the available flags.
BitVenom
(BitVenom)
#128
There’s data inside the nav_bays type tag (it refers to an external file) that is also handy, such as whether or not that light is cast on to the ship itself or only ships nearby (often for bays, the inside is already glowing, why waste a light to brighten what is drawn glowing?), flicker/pulse behavior, etc.
1 Like
Dom2
(Taiidan Republic Mod)
#129
I believe the options for “Type” are:
nav_thrust
nav_scaffold
nav_missile
nav_bridge
nav_bays
nav_baynf
default
You can also have a _Flags[Sprite], but I’m not sure what it does…
1 Like
PayDay
(Christoph Timmermann)
#130
I looked at these files, maybe parse them too and fill a combo box with all types it found?
I rather have to handle the type as a string or using a combo box explained above, since you can add custom styles.
Chimas
(Chimas)
#131
like the Vaygr bridges that lits up the hull?
1 Like
PayDay
(Christoph Timmermann)
#132
Okay, so I got the data path stuff finished, the idea is to select the keeper.txt in order for the editor to be able to load the stuff it needs.

Now about the navlight styles, I already eat all the information from them, now I have to use them correctly.
Please help me complete this.
climbTime = 0.00, How long the light needs to get to full brightness. (in seconds)
topWaitTime = 0.1, How long the light stays at full brightness. (in seconds)
decayTime = 0.15, How long the light needs to get to zero brightness. (in seconds)
bottomWaitTime= 0.75, How long the light stays at zero brightness. (in seconds)
illumSawHz = 15731.93,
illumSawMin = 0.9,
illumSawMax = 1.1,
illumSawOfs = 0.95,
illumSinHz = 0.125,
illumSinMin = 0.95,
illumSinMax = 1.05,
illumSinOfs = 0.5,
noSelfLight=1, If the navlight is not casting on the host ship.
linkThrust=1, If the navlight brightness is controlled by the thruster strength
And the navlight sprite data/effect/textures/navlight.tga is the only one that you can use? Not too important for the preview in the editor though.
EDIT: I still need the flags that you can assign in the DAE.
EDIT 2: I just discovered that the color values in the DAE can be above 1, this increases the brightness I suppose?
PayDay
(Christoph Timmermann)
#133
Puh, finally done with these damn navlights.
This update brings some new core functionalities, these will help implementing more features in the future.
Here is the download: HomeworldDAEEditor_b2221.zip
Added features
- The editor needs some of your homeworld data now. You can add as many paths as you like and they will overwrite each other according to their position in the list. (Like Homeworld does)
- Billboarding is now fully functional, this is used to display the navlight sprites and soon the editor icons I was talking about.
- Navlights now get parsed and loaded from the DAE, this introduces another “save-you-from-crashing” functionality.
It will search all navlight styles in your Homeworld and mod data, navlights using a not existent style get skipped, you get a warning popup. (Problems tab incoming)
- Realtime preview of navlights.
- Wireframe rendering.
- And specular mapping!
Bugfixes
- Nothing, as far as I can tell.

The editor will load all data from the specified directories each time you start it. It will also check if the keeper.txt is still there, and notify you if something is not right.
Another thing to note is that the Saw and Sin values from the navlight styles are not used yet, if someone knows how they alter the look of the light, please post here.
Navlights with a style where the noSelfLight value is set to 1 will not illuminate the ship.
This can be combined with the dockpath preview I have in mind.
You can watch their behaviour using the Draw illumination radius option.
Navlights with a style where the linkThrust value is set to 1 are modified by the thruster strength.
The slider can be found in the Materials tab.
This was much work, both on rendering and “simple” file stuff side. So please let me know if something acts weird. 
Have fun.
8 Likes
BitVenom
(BitVenom)
#134
Here’s the code that uses the illum values to generate high-frequency ‘flicker’ for some lights. We found that using this looked much nicer than just static lights… the extra motion adds a lot of character. This is raw code… placed here WITHOUT warranty of any sort.
real32 range = 1.0f;
if (pStatus->illumSawHz != 0.0f)
{
double rawd = (m_localTime*(double)pStatus->illumSawHz)+(double)pStatus->illumSawOfs;
rawd -= floor(rawd); // aka fract()
float raw = fabsf(1.0f-(float)(rawd*2.0)); // Ping pong 1->0->1
range *= pStatus->illumSawMin+((pStatus->illumSawMax-pStatus->illumSawMin)*raw);
}
if (pStatus->illumSinHz != 0.0f)
{
double rawd = (m_localTime*(double)pStatus->illumSinHz)+(double)pStatus->illumSinOfs;
float raw = (((float)sin(rawd))+1.0f)*0.5f;
range *= pStatus->illumSinMin+((pStatus->illumSinMax-pStatus->illumSinMin)*raw);
}
return range;
The conversions to double are important because large time values (m_localTime is time in seconds as a float/real32) - paired with very large Hz values lead to overflow quite fast.
7 Likes
Chimas
(Chimas)
#135
I wish you’d adopt a (tortoise) SVN, so we just press a button to update … Thanks for the update anyway.
1 Like
Chimas
(Chimas)
#136
btw,
any chance we can connect DAE file to editor’s exe, so we just have to double-click the DAE file to open it? In my end here is “splashing” me - "failed to load texture ‘resources/missing.tga’ "
1 Like
PayDay
(Christoph Timmermann)
#137
Thanks. I’ll try to implement that in my logic.
Nice thought, I added auto-updating to my list.
I have not thought about that, I will definitely work on that.
It probably looks for it’s files in the DAE directory for some reason.
3 Likes
PayDay
(Christoph Timmermann)
#138
YES! Great news!
I finally killed that memory leak!
The performance raised by about 800%.
Release is coming tomorrow.
EDIT:
I also added another 4 bytes to the VBO data, so it’s 12 floats in total for each vertex now.
This makes sure that the data is aligned to 4 bytes. 12/4 = integer.
This puts ~200% on top. 
5 Likes
PayDay
(Christoph Timmermann)
#139
Sorry for the triple post. 
I did not have much time to bring this forward lately, but I think it’s worth a new release.
Download: HomeworldDAEEditor_b2424.zip
Added features
- The editor can now be launched directly from the file browser. (By linking DAEs to it or using “Open with…”)
- NavLights are now represented by a little lightbulb icon. (You can control their size in the settings)
- Engine Glows now get parsed and have their tab. They mimic the in-game behaviour using the thruster strength slider.
- FPS counter in top right corner.
- Checkbox for enabling VSync added.
- Removed Goblins parsing and their tab. (You get a warning that Homeworld 2.0 does not like them, if your DAE has one.)
- Optimized vertex data for faster rendering.
Bugfixes
- Textures with [ or ] in their name don’t crash the editor anymore.
- Fixed memory leak in render method. (MUCH better performance)
- Some other things I came across.
If you find any bugs or know things that can be improved, take a look at the Issues page on Bitbucket. You can post without any registration.
6 Likes
Chimas
(Chimas)
#140
Hey, thanks for the doubleclick thingy.
It’s about time to give a name to your editor, what about Guide Stone? rsrsrsrsrsrs
2 Likes