The "What Are You Working On?" Thread

You are not doing the alpha mask properly in gimp. You only have one layer in gimp that has transparent parts in it. Gimp probably fills all those transparent parts with white or black (along with very bad rough rasterized edges) when you export to dds. You need to add mask layer for the diffuse layer in gimp to export it. In gimp mask is alpha in dds (if you use dds that has alpha).

So, (in gimp) right clikc on that one layer and select "add alpha layer". You can simply add a white layer. Then copy paste your diffuse layer into the mask layer and invert the mask layer colors. Then make your diffuse layer black and paste the parts you need for the car that you want to be visible. Make sure your diffuse parts are little bigger than the mask holes or you get edge stripes on the transparent part edges. Don't use other than the full black and white options. The other ones create edge issues.
I used that exact technique to create the main "alpha" layer you see there, copied the AO, inserted it into the alpha layer, then inversed it (and tuned it a little to get rid of the grey hue on the lighter parts). There are other parts on this texture that have no alpha/transparency, and they are on different layers in that xcf file. Normally it exports just fine (I used this technique on multiple glass textures before, never had issues).

And for my fix I splitted the resulting png (that on its own did result in the weird black skin seen in my post) via Decompose, saved the diffuse and the alpha layer on their own and after recombining them in DXTBmp it suddenly worked :O_o:

It's as if there is too little opacity on the png, something in the file decides to go all black, WHILE still letting the specular shine through.. definitely odd, would love to know what exactly happened here (may upload a faulty texture later when I'm home again for you to try)
 
Last edited:
dhM4HdR.png


1X73QyM.png


7HFjewh.png


I must admit it's been a childhood dream of mine to create a late 80s/90s BMW button and little amber light flooded cockpit in 3D so yes, I'm totally losing it on the OBC :). On to the Radio, top of dashboard and vents almost done.

@Modek You do have the same module in the E36 right? Din size...:)
 
eDmV0YL.png


To get a perspective and rough proportion I put the 'dashboard upper' part in.

MmI7y0T.png


The steering wheel is pretty much in its final fixed position in terms of alignment.

BvWbVRU.png


In relation to door panels and dashboard/steering wheel the upper part also fits quite well (the dashboard center part/door panel edges are also in final position).

nve9iki.png


All in all the cockpit elements fit and work together. Now on to welding and sealing it all off plus finalizing the shape.
 
...how do I get them out there tho? And is it only an issue from a certain threshold on?
You could select the layer, copy it (ctrl-a, control-c), then delete all stuff on that layer. Paint the whole layer black and paste your original stuff back on top of it. If you get black edges in ac then read the earlier link and do that to your diffuse layer.

I think gimp just doesn't use the transparent parts for anything when exporting.

Gimp has groups in layers so you can use those to build your mask and diffuse layers. At the bottom of each group add a black or white or whatever fully painted layer and then on top of that just pile your layers which have transparent bits. You can turn off layer groups individually so you can easily get the things you need. Just create new layer from visible and drop your diffuse and alpha and then export it.
 
rl7hq0z.png

You do need to select this option for it to save the colour of fully transparent pixels, otherwise it sets them all to black for better compression.

The version of the gimp dds exporter I use can't export files with multiple layers at all so I'm always copying into a new file and then adding the transparency as a layer mask anyway.
 
I didn't know .NET had a JSON reader, and already grabbed the newtonsoft one via package manager. Most of my coding is the odd spreadsheet at work in VBA so when it comes to actually making a stand alone application I don't do it very often - the last time was last year when I made version 1 of the tire app (which was very basic). I'll just need to figure out how it works. I'd imagine it's designed to not be too difficult.

I did use my.settings last time but the tip to allow persistence between versions would be useful. However, this time I think I will need a config file (using json as I have to learn it anyway) as I'll need to include a 'supported car list' which will be better in a config file I think. I implemented this last night by manually populating the 'CarCollection' class using a sub, but would be better if it was in a file so I don't have to edit the code if a change is needed. I believe (from reading the front page on the website) there's some functions in the newtonsoft json library to help with serialising objects to a file.

It's going to just be a case of copying over the specific files needed (using the filesystem objects) from one folder to another. The app is basically a way of picking 2 folders to copy from/to, but in a very fancy round about way :laugh:. e.g. RSS formula hybrid 2018 should have 5 files: RSS_T.dds, RSS_NM.png, RSS_Blur.dds, RSS_NM_Blur.png and another one that I can't remember the name of (dirt texture). There's no way of actually knowing if a specific file matches the UV map of the 3D object so I will just check the filenames. This will be kept in the supported car information and I will copy these across to the 'Car' object in the list view (may be better with a list box?) at the left (using the .tag of the listviewitem to store it so I didn't need to write an inherited class, although I did do that for the tree view for selecting tires). Then use this information when loading the tires to check if a particular folder contains the correct files, and again when actually copying the files to only copy the files needed. The only difficulty will be if it requires elevation as in all likelihood, we will be copying to the Program files\Program Files(x86) folder where most people have steam\AC installed. I may just need to make it ask for elevation every time (using the app manifest?) which would be simpler. Will maybe need some option to backup the existing textures in the skin folder (e.g. rename to name.dds.backup or something)
suggestions welcome for the randomisation. I will need a new window that displays the available colours and you can select which ones you want to be randomised (e.g. which tire compounds were at a specific race you want to run). Will first do a simple 'make them all the same' button though.
Not really thought too much about the appearance yet, but as you say including some images would be good. For the car list I could either add the 'badge' image found in the /ui folder of the car folder or add the 'preview' image of the 1st skin in the list. Once I've got it functional I'll move on to aesthetics. :D
The next step is to get the json reader working, then do the file copying and then put in some data validation/error checking. I haven't put in much error checking so far as just testing on my own machine and I know everything is there ;) I've got steam/AC installed on my laptop as well, which I sometime use when making skins (my laptop definitely wouldn't run AC very well!), so I can use that as a test bed for error checking without altering my main PCs files.

Made some good progress today. Now have the first working version:
Loads supported cars and skins automatically from AC folder. Selecting a car refreshes the available tire list to only those with the correct files for the car as well as displaying a list of the skins for that car in the gridview. Can then choose a compound/colour for each skin, click the button and it copies them across. Still to add json reading. I am just validating 'supported' cars based on folder name at the moment.

Now I've got the core functionality done and working, I'm going to have a bit of a play with WPF to see if I can work with it. Most of what I have done is class based so should be transferrable if I can understand how the controls work. The gridview in particular looks troublesome as you can't seem to manually add rows and have to bind to a collection. I'll make a test app to see if I can understand it.

I've learned quite a few nice simple things that .NET does that VBA can't or couldn't do (maybe it can now in the newer office versions) , mainly with string methods like .substring .indexof and .concat makes the code a bit neater. So on to the interface tomorrow - I will either figure out WPF and move it across, or make the forms version look nicer. :)
 
  • Like
Reactions: MHS
rl7hq0z.png

You do need to select this option for it to save the colour of fully transparent pixels, otherwise it sets them all to black for better compression.

The version of the gimp dds exporter I use can't export files with multiple layers at all so I'm always copying into a new file and then adding the transparency as a layer mask anyway.
I have that checked.. but maybe it somehow needs "enough" colour per pixel for it to not turn black?

My normal method is exporting from multi layer mayhem to png, then check in editor, then convert to dds, so far worked fine with the exception for this texture an that of the Audi interior.

But another question, not that I got it working this texture results in a layer of gray over the metal_detail, which I ofc want to be darker instead. How is the best course of action to use a combination of diffuse and metal_detail to have a skin darker according to AO? RGB map is ofc in use already
 
Made some good progress today. Now have the first working version:
Loads supported cars and skins automatically from AC folder. Selecting a car refreshes the available tire list to only those with the correct files for the car as well as displaying a list of the skins for that car in the gridview. Can then choose a compound/colour for each skin, click the button and it copies them across. Still to add json reading. I am just validating 'supported' cars based on folder name at the moment.

Now I've got the core functionality done and working, I'm going to have a bit of a play with WPF to see if I can work with it. Most of what I have done is class based so should be transferrable if I can understand how the controls work. The gridview in particular looks troublesome as you can't seem to manually add rows and have to bind to a collection. I'll make a test app to see if I can understand it.

I've learned quite a few nice simple things that .NET does that VBA can't or couldn't do (maybe it can now in the newer office versions) , mainly with string methods like .substring .indexof and .concat makes the code a bit neater. So on to the interface tomorrow - I will either figure out WPF and move it across, or make the forms version look nicer. :)

Nice work :)

Off the top of my head I can't remember if WPF grid view is different, but I know in the WinForms DataGridView you have to initialise a new DataGridViewRow and then call the '.CreateCells()' method where you pass in the associated DataGridView and an array of objects containing the values for each column.

In my experience the ListView is quicker / simpler to work with, but the DataGridView is a bit more flexible as it has options to include button cells etc. and scale row heights better and things like that.

Code to persist the 'My.Settings' across versions is as below, stick it right near the start basically. As the comments say, you just need to add an empty string setting called 'ApplicationVersion' and then stick this code in.

'This persists settings across versions of the software
'It only requires that you have a Setting called ApplicationVersion, the rest will just work
If My.MySettings.Default.ApplicationVersion <> My.Application.Info.Version.ToString Then
My.MySettings.Default.Upgrade()
My.MySettings.Default.ApplicationVersion = My.Application.Info.Version.ToString
End If
 
But another question, not that I got it working this texture results in a layer of gray over the metal_detail, which I ofc want to be darker instead. How is the best course of action to use a combination of diffuse and metal_detail to have a skin darker according to AO? RGB map is ofc in use already
Is your mask black really full black? Also check the alpha channel of your metal detail.
 
Nice work :)

Off the top of my head I can't remember if WPF grid view is different, but I know in the WinForms DataGridView you have to initialise a new DataGridViewRow and then call the '.CreateCells()' method where you pass in the associated DataGridView and an array of objects containing the values for each column.

In my experience the ListView is quicker / simpler to work with, but the DataGridView is a bit more flexible as it has options to include button cells etc. and scale row heights better and things like that.

Code to persist the 'My.Settings' across versions is as below, stick it right near the start basically. As the comments say, you just need to add an empty string setting called 'ApplicationVersion' and then stick this code in.

'This persists settings across versions of the software
'It only requires that you have a Setting called ApplicationVersion, the rest will just work
If My.MySettings.Default.ApplicationVersion <> My.Application.Info.Version.ToString Then
My.MySettings.Default.Upgrade()
My.MySettings.Default.ApplicationVersion = My.Application.Info.Version.ToString
End If
WPF rocks! Had to do some reading and a few tutorials but starting to understand enough now. I've imported my classes into a new WPF project and have come up with this so far:

Which looks much better, although of course the style can be fixed later.
So far I have just got the car and skins loading working but shouldn't be too long to get back to where I had the other version.
The 'Car' object contains all the skins in a collection as I originally designed so just a few tweaks to get the classes back to how they were originally.

Now I have it set up, I find it amazing that just 1 line of code automatically populates the skin list instead of me having to manually do it all!
Private Sub carList_SelectionChanged ...
skinsList.ItemsSource = carList.SelectedItem.skins
End Sub
Previously this required 20 lines of code to manually go through and populate the list :laugh:

Next up will be figuring out how to use the WPF treeview and how to adapt my tirefolder (recursive) class to it. I think I will need to add a 'selected compound' property to the skin class and then can populate the combo box options for this when a tire folder has been selected. I am aiming to have it working again by the end of tomorrow. :geek:
 
Alpha of the metal_detail shouldn't make much difference, it seems to have some control on the white sun reflection (specularity? not sure on the terminology) :

Detail Alpha White
G5nzTdGh.jpg


Detail Alpha 50% Grey
ehkZH1Rh.jpg


Detail Alpha Black
2F2Xhb3h.jpg
I kinda remembered that the effect was small but not that small :)
 

Latest News

How are you going to watch 24 hours of Le Mans

  • On national tv

    Votes: 47 32.4%
  • Eurosport app/website

    Votes: 44 30.3%
  • WEC app/website

    Votes: 25 17.2%
  • Watch party

    Votes: 10 6.9%
  • At a friends house

    Votes: 3 2.1%
  • At Le Mans

    Votes: 16 11.0%
Back
Top