From what I’ve seen, transparency has been considered a bit of a problem. I strongly doubt that there would be any problem showing transparent objects in the game. Instead the problem is that Qubicle don’t support transparent voxels. Of course, the optimal solution would be that Qubicle would add support for transparency, but as an alternative I have a suggestion on how to get around it.
The easy part
You put the voxels that you want to be transparent in separate voxel chunks. When you name these voxel chunks in Qubicle you use some tag at the end of the name, like “(Transparent)” or “(Opaque)”. If the transparent voxels are part of a larger voxel chunk then they should have the same name as the solid part, but with the added tag at the end. For example: If you’re modelling a lantern then the voxel chunk that has the solid voxels would be named “Lantern” and the chunk that has the glass would be named “Lantern (Transparent)”. This way Stonehearth’s voxel2polygon converter could recognise them and put them in the same mesh. To make it easier to model, solid voxels should override transparent, so that you don’t have to worry about overlapping.
The tricky part
We need a way to both define the colour for the transparent voxels and how transparent they should be. Here is a couple of possible way to do this.
Edit: New methods!!!
Both more correct and more intuitive than the original idea.
1. Single alpha value
If it would be considered less important to have control of the transparency for each voxel then the transparency value could be a part of the tag in the name. For example “EtherealSword (Transparency 0,5)” or “EtherealSword (Alpha 128)” if you’re making a ghostly, half-transparent sword. You could have more levels of transparency by making more voxel chunks.
2. Alpha voxels (my new favourite)
You include the transparent voxels in the solid voxel chunk. Here you can give them any colour you want. You then make a new voxel chunk (with a tag in the name) that only is in greyscale. This is the alpha value, so lets call them the alpha voxels. If you want a voxel to be solid then you don’t have to add an alpha voxel for it, but if there is an alpha voxel then the corresponding voxel in the solid voxel chunk will be more transparent the darker the alpha voxel is.
If you follow the upper and right edge of the big pallet you go from white, to full colour, to black. If you pick a colour along these edges the voxels won’t have any transparency. However, the closer you get to the lower right corner the more transparent the voxels will be.
I realise as I’m writing this that I’m missing the greyscale along the left edge, so here is another way to do it.
Now the closer you get to the bottom center the more transparent the voxels will be.
I know that we would loose more and more of the colour spectra as we get closer to the point with full transparency. However, I think we can get away with this since it gets harder to tell the exact colour when it gets more transparent.
Of course this would all look very weird as long as your still in Qubicle. Translating the colour into the actual transparent colour would have to be done in game. Though if Radiant thinks this is a good idea then maybe they could release a small program that would show models as they would appear in game. This would also be good to see how they look with the in game shading.
That’s all. Comment away!