Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Thu Apr 05, 2007 12:37 am Post subject:
VXLSE III AutoNormals: The calculus nightmare!
Subject description: Is it really worth an article?
In the last news that I posted (Believe it or Not), I wrote that I would get more specific on the things that are getting me busy. The real thing is the auto-normals.
In a previous news HERE, I've posted that I would write an article for SIBGRAPI about VXLSE III AutoNormals algorithm. So, basically, about how VXLSE III finds the lighting values for each pixel. I wasn't lying and it wasn't an aprils fools joke.
When I first talked to my teacher about it, I told him that my research about it was finished. After talking, I've checked if the results were fine and I finally (yea, about time) could remember that VXLSE III has a feature called View -> Spectrum -> Normals, that shows all pixels with a grey colour, only affected by the lighting values.
The pictures below shows the great difference between the way VXLSE III 1.36 used to find the normals, the current internal alpha of VXLSE III does and the real normals.
Westwood Normals for Kirov Airship (RA2)
VXLSE III 1.36 Normals for Kirov Airship (RA2)
VXLSE III 1.37 Normals for Kirov Airship (RA2)
Too much smoothed, isn't it? And I didn't smooth the normals on both. Although I already had a lot of progress since 1.36. If I use an uber range like 60, it still takes one hour to calculate all normals here, but it doesn't give me a crystalized result anymore, since the auto-normals formula is now correctly based on distance.
I've showed VXLSE III to my teacher last tuesday. He liked what he saw, although I can't write a scientific article with these results. Also, I have to create some kind of excuse for what is the purpose of this research? I mean, do you think that scientists and the market are interested on modding an about 7 years old game like Tiberian Sun and Red alert 2? Voxels Section Editor III can be a nice tool to model... errr... sand? Granulated surfaces, maybe. Games don't use voxels anymore, specially the ones from RA2/TS that doesn't real have a volume concept behind it. It's usually expensive for the video card to render this kind of thing, although some people already found ways to use shading techniques to render voxels through hardware, which makes things a lot faster. I have yet to read the article from these people before doing something like that for VXLSE III.
He also recommended to look for the words "Volume Rendering" and Lighting no Google and also looking for articles from Marc Levoy, who seems to be an expert with volume rendering. I've already browsed a lot of articles about volume rendering, including Levoy's ones, but none of them really seem to help with my research. Some of them find normals from 3d scanned material, or find normals from planes, polygons, etc.... but never from a function that we have absolutelly no idea of what is it, which is what VXLSE III is suposed to do.
So, I have to fight on my own. Myself and my imagination on this journey, with about a month to write an article about the unknown and possibly useless for anyone else than TS and RA2 modders...
For those wondering what is the calculus nightmare in the title? This research uses inumerous concepts from calculus and I hate calculus to death!!!! Anyway, just wondering... how bout making some sand? QUICK_EDIT
I use 1.2c still, personally, because I'm an old dingus like that. However, you'll never get perfect results with your method because westwood just used the surface data on the models. I mean, you're near perfect as is, but it will never be the same. Maybe you can experiment with similar colors all being normalized in groupings and other colors on their own. That way details don't get oversmoothed. Hmmm?
Otherwise though, I commend you for your quest. _________________
Joined: 26 Nov 2002 Location: Algae Colony On Mars
Posted: Thu Apr 05, 2007 10:01 am Post subject:
Perhaps your teacher is recommending you submit an article purely because of the high amount of calculus involved and the effort it took you to do it. Granted, it's not perfect but you've really gone and used a great deal of maths to try and get a good result and that's probably why it's such an interesting project. Even if it's useless to the rest of the world, if you can write an informative and good article that makes people interested in it then it might just win.
Good luck with it, I hope you do well. _________________
Quote:
This is sexier than what this forum was supposed to tolerate. - Banshee
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Thu Apr 05, 2007 10:07 am Post subject:
@Clazzy and almost everyone: Thanks a lot for your support!
@Rattuskid: The normals are derivative from the function composed of the pixel that are near the pixel that is being calculated.
I could even try a surface normals method where I would find the vertexs of the picture and make planes out of them, but the normals could end being blocky on that way.
Here's a picture with a bit better result of the Kirov above.
Joined: 07 Mar 2006 Location: In ur BIOS, Steeln ur Megahurtz!
Posted: Thu Apr 05, 2007 12:24 pm Post subject:
Banshee wrote:
I could even try a surface normals method where I would find the vertexs of the picture and make planes out of them, but the normals could end being blocky on that way.
you never know for sure if you dont try _________________ Please, read the signature rules of the forum. QUICK_EDIT
The underlying theory of Voxels in TS and RA2 is parallel to that of Equilibrium Thermodynamics onto physics.
Even though TS / RA2 Voxels may be 'old', the theory behind them will always play a role. That being said, go for it!
In my situation, many people just want to and learn Statistical Mechanics and don't think Thermodynamics / Condensed Matter is worth touching. Grrrrr. They are fools! QUICK_EDIT
Your calculus looks like it is working its job fine. You are essentially extrapolating the data stored in the voxel to create the normals. However, extrapolated data is not necessarilly what you want; in this case, you know the model curves at certain points while it has hard angles on other parts. Your calculus equation cannot interpret this from your brain; it just smooths out all the data (extrapolates it) to find the most likely fit. I think the best solution for VXLSE is to just allow you to "paint" certain areas with hard angles; so the normal generator ignores them or goes over them with a different formula that somehow preserves the harder edges; can't help you with that though... I don't know almost any calculus. That's my suggestion; VXSLE rocks and all of us would love it to be better. _________________ Something goes here... Right? QUICK_EDIT
Joined: 02 May 2005 Location: Helmond, the Netherlands
Posted: Thu Apr 05, 2007 4:40 pm Post subject:
@ guest
I do my bachelor thesis at a section called CMI, Condensed Matter & Interfaces . I study chemistry, not physics (CMI has people of both chemistry and physics) and what I do isn't related to voxels but just wanted to mention it. QUICK_EDIT
@ guest
I do my bachelor thesis at a section called CMI, Condensed Matter & Interfaces . I study chemistry, not physics (CMI has people of both chemistry and physics) and what I do isn't related to voxels but just wanted to mention it.
I remembered my password (been a while sense I logged in with my original account) - I am Guest.
Cool. I have just started my studies on condensed matter theory, so I wouldn't be close to the level you are, lol.
I am doing a dual in B. Engineering (Software) / B. Science (Physics and Mathematics) at University of Queensland - which takes 6 long years (done 2.5) grrrrr. However, I am very busy atm, and sadly, a number of cnc projects I have been involved with have become inactive.
I know a number of people on these forums that are studying. Clazzy is doing a MSc in physics if I remember correctly, Banshee is doing Computer Science (don't know if its undergraduate or postgraduate) and there was another, doing animation / graphics design, who worked on opensun. I assume there are plenty. QUICK_EDIT
That's at st. lucia campus right? I've just started a dual course doing an advanced diploma of electronic engineering at north brissy tafe followed by a bachelor of electronic engineering at griffith uni nathan. 5 years all up lol. QUICK_EDIT
That's at st. lucia campus right? I've just started a dual course doing an advanced diploma of electronic engineering at north brissy tafe followed by a bachelor of electronic engineering at griffith uni nathan. 5 years all up lol.
Yeah, I am studying at St. Lucia. Small world in a sense.
Electronic Engineering is a very intresting course, from what I have heard. In some of the projects I have been involved with (making wireless temperature and motion sensors) I have worked with Singaporean (international) students who have Electronic Engineering diplomas and are earning their bachelors (in Electrical, UQ does not offer electronic engineering). For some of the projects, I (Software Engineer) programmed the PC software / drivers, ROMs, some work on FPGAs and built the firmware for the Microcontrollers, whilst they (Electrical Engineers) designed most of the hardware (modulation, transducer, demodulation circuits etc.).
Your course will be very fun, and you will learn some pretty awesome stuff. Plan on creating the next game boy / psp or gaming console? Should have enough knowledge to do that by the end of your course, lol. What industry will you like to get into? QUICK_EDIT
I'm looking into either defence, mining, robotics or a mixture of these. Havn't decided yet. The project you did sounds awesome. I've only started so i dont have much of a knowedge base at the moment lol. Before this i was an electrical apprentice and a gunner in the artillery but both where to menial and to simple. My brothers also studying crimonoligy at UQ as well. QUICK_EDIT
Joined: 22 Aug 2006 Location: somewhere south of the north pole
Posted: Fri Apr 06, 2007 2:22 pm Post subject:
Rattuskid wrote:
... Maybe you can experiment with similar colors all being normalized in groupings and other colors on their own. That way details don't get oversmoothed....
Perhqaps a third layer.
Layer 1: Color
Layer 2: Normals
Layer 3: Section-color (like sections, but in the same section.
The logic would be something like each section is normalised by it's own. Sorta like teh sections are now. This will be better, 'cos all of you that have exsperimented with sections knows how easely things can go bad, really bad.
I cann't se the new AN missing any features, as far as results (srceenees) go. I really hope the report gets thrugh people, maby even EA
I am awaiting the next VSE. BTW, how is things going with VSE III 2.0? _________________ This is a signature QUICK_EDIT
I still think that you can get normals as good as Westwood's. The program just needs to identify hard angles and render them as such. I don't think there's any need to smooth anything, because if you get the normal for each voxel by calculating its position relative to the adjacent exposed voxels you will get smooth result, and it won't destroy 90' angles. _________________
Joined: 22 Aug 2006 Location: somewhere south of the north pole
Posted: Sun Apr 08, 2007 11:37 pm Post subject:
hmm,perhaps, but many WW voxels have normals that don't make sence to the voxels at all
Look at the normals of the Prism Tank and you'll understand it.
A nothe problem woth what you are saying is that there are MANY 90' angels in a normal voxel, often in a SMOOTH part of an advanse voxel.
So yiur ideas has a lot of "problems" but if Lord Banshee could make it work, But I don't think I'll put money on that
I still think the best is to improve the current AN 7(.1) a bit, and add suport to a THIRD layer, section layer.
Layer 1: Color
Layer 2: Normals
Layer 3: Section
Edit: Look at the two kirovs at the top. The WW and 1.37. Look at the front, withc is best? westwood normals isn't the best anny more. And one mor thng, look at the side where the "bomb" falls down from, it is flat, but in WWnormals, it has a "gap" in.??? _________________ This is a signature QUICK_EDIT
Joined: 22 Aug 2006 Location: somewhere south of the north pole
Posted: Mon Apr 09, 2007 10:28 am Post subject:
I thought so ass well, but when it gets saved, you can choose to save it as a TS-RA2 voxel, or a prodject. Cos the only thing the "third layer" will do is affect to way normals is aplyed. If I remeber correct, you sayd that you'll add a feature to the AN to only normalize unnormalized voxels. The difference cann't be that big? I don't know, I don't code more than basic HTML, but logic tells me that it cann't be that hard? :roll _________________ This is a signature Last edited by Dupl3xxx on Mon Apr 09, 2007 3:08 pm; edited 1 time in total QUICK_EDIT
A nothe problem woth what you are saying is that there are MANY 90' angels in a normal voxel, often in a SMOOTH part of an advanse voxel.
No, it obviously couldn't check on a voxelular level, that wouldn't work, it would have to be a 2 voxels on each side to have an effect.
Besides, I don't just mean 90' angles, just that it should identify curved surfaces (and their curve) and flat surfaces, and normalise them as such. Which would mean no smoothing on flat surfaces. _________________
You cannot post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum