Inside: SereneScreen Fan Forum

Inside: SereneScreen Fan Forum (https://www.feldoncentral.com/forums/index.php)
-   Marine Aquarium 3 for Windows (https://www.feldoncentral.com/forums/forumdisplay.php?f=46)
-   -   New Fish Models (https://www.feldoncentral.com/forums/showthread.php?t=4918)

rctneil 05-29-2009 01:02 PM

New Fish Models
 
Hey Jim,
As you work on the new fish models, would we been able to see pictures of the models being created before they are put into the aquarium to show progress more clearly and give us more of an insight to how the aquarium is made?

Thanks

Regards,
Neil

Jim Sachs 05-29-2009 01:24 PM

If I have time, and can figure out how to show how it's done without showing how it's done.

Ralph 05-30-2009 08:45 AM

That part sounds easy to me.... change all the colors to white and put them on a white background. :D

The Old Man 06-01-2009 04:58 AM

I was just watching the existing fish models when my screensaver kicked in, they still look really good, its hard to imagine how much more improved the new ones will look! I know you added some pixel shader goodness to one or two of them a while back but even so, they still look great. Better shut up, I might have put Jim off making the new ones!

Jim Sachs 06-01-2009 09:19 AM

No pixel shaders, but vertex shaders are used for many things in the Aquarium now. There are still a lot of cards out there that don't support pixel shaders.

feldon34 06-01-2009 10:15 AM

These graphics chipsets support pixel shaders:
  • GeForce 3
  • GeForce 4
  • Radeon 8500+
  • Radeon 9500+
  • Matrox Parhelia
  • S3 Chrome
  • Intel GMA 900/950+
That's pretty much every graphics card since 2002.

Jim Sachs 06-01-2009 10:40 AM

I'm always getting complaints that MA3 won't run on some old machine or another. If I used Pixel Shaders, that would increase a thousandfold. Just today, Marianne was mentioning that many of the effects in The Lost Watch did not show up on one of her new machines. That's obviously Pixel Shader trouble.

Derrek 06-01-2009 12:03 PM

Her "new machine" is a Dell mini. It's amazing it ran at all.

Jim Sachs 06-01-2009 12:04 PM

But it should run MA3.

Tiny Turtle 06-01-2009 06:59 PM

When you buy a netbook or similar computer you shouldn't really expect to be able to run every single program. At some point you have to stop and consider why there were other computers at the store costing five times as much.

You're building a driveway to your house and making it large enough for an eighteen-wheeler to park sideways - just in case one should happen to drop by.

Nicki 06-02-2009 12:58 PM

Corporations can often be the biggest slouches in terms of updating their systems . The company my brother works for has literally thousands of computers all running , you guessed it , Windows 98 . Most of the machines are the same ones that were there when he started the job in the 90's but I guess we should give them kudos for making the leap from MSDOS ! If it ain't broke , I guess . These guys would have to be content with MA 2.6 , but following the logic it is easy to see why it's necessary not to alienate too many customers with older computers .

jleslie 06-02-2009 03:53 PM

BTW a Dell mini should be the last graphics chipset Feldon mentioned... so Pixel shaders... (I'm too tired to look it up, but Atom usually mean the single-memory-channel 945 chipset, almost always in netbooks, which is last on his list.)
John

Araquay 06-22-2009 10:16 AM

As you develop the new fish models, would it be feasible to create more than one species from the same model? For example, the percula clownfish shares the same body conformation as a few other clownfish. So it would seem like you could provide two or three species with the same model using the appropriate textures.

Alan

Jim Sachs 06-22-2009 11:37 AM

That was my original plan with each fish-type (tangs, triggerfish, etc.), but it turned out that each species had enough differences in the body shape to warrant its own model.

What I'm struggling with right now is creating a whole new paradigm for the fish models. Up to now, the fish have consisted of 6 parts: the body, 2 side fins, 2 low fins, and the eye (a single sphere). This worked well when monitors were 1024x768, but modern resolutions show the areas where these separate pieces join together. My plan has always been to make them single objects, like a real fish. Just the vertices would be rotated to move fins and eyes, not individual objects.

The problem is what gets drawn in what order. When transparency is involved, you have to draw in layers. For instance, a transparent fin must be blended with previously-drawn pixels of the body. When the fin is a separate object, I can keep track of the angle of the fish and draw the objects in the proper order. But I have yet to find a way of doing this if the fish is all one object.

feldon34 06-22-2009 01:02 PM

You can't make the fins solid and then use a shader?

rctneil 06-22-2009 01:14 PM

Quote:

Originally Posted by Jim Sachs (Post 114314)
That was my original plan with each fish-type (tangs, triggerfish, etc.), but it turned out that each species had enough differences in the body shape to warrant its own model.

What I'm struggling with right now is creating a whole new paradigm for the fish models. Up to now, the fish have consisted of 6 parts: the body, 2 side fins, 2 low fins, and the eye (a single sphere). This worked well when monitors were 1024x768, but modern resolutions show the areas where these separate pieces join together. My plan has always been to make them single objects, like a real fish. Just the vertices would be rotated to move fins and eyes, not individual objects.

The problem is what gets drawn in what order. When transparency is involved, you have to draw in layers. For instance, a transparent fin must be blended with previously-drawn pixels of the body. When the fin is a separate object, I can keep track of the angle of the fish and draw the objects in the proper order. But I have yet to find a way of doing this if the fish is all one object.


By the sounds of the above, it seems like we'll have a whole tank ful of newly modelled fish by the end of the week!



:D

Jim Sachs 06-22-2009 01:26 PM

The transparency is already done in shaders. But the shader needs something to work with - a pixel that's already there. Then it blends the new pixel with it using the calculated amount of transparency. So the scene has to be built from back to front. The polygons in an object are simply drawn in the order they are listed in the model, regardless of how far away from the camera they are, so it's entirely possible for a side fin to be blended with the background, then the body to be painted behind it, giving the impression that the fish has a hole in it where the fin passes over.

feldon34 06-22-2009 02:54 PM

I really never realized this was an issue with the model at all.

I thought the texture just had an alpha channel with transparency. I realize you usually just use 1-bit alpha in your DDS textures to save space, but what if you did 4-bit alpha for the fins?

Jim Sachs 06-22-2009 03:09 PM

I've always used 4-bits (16 levels) of Alpha for the fish textures (DXT3).

The problem I'm describing has not been much of an issue before, because I've always used a heirarchy of objects within the fish (fins, eyes, etc.), and manually changed the order in which they are painted depending on viewing angle. But now that I'm trying to go to a single object, the drawing order is no longer reasonably within my control. I say "reasonably" because there is a way of doing it, but it would involve calculating the distance from the camera of every polygon, for every object, every frame. Even this would only give an approximation, as a polygon which runs deeply into the scene could easily have points which are both nearer AND farther than the next polygon.

feldon34 06-22-2009 04:13 PM

I just don't see software developers out there having to jump through hoops to do, for instance, the windows on a car, etc. There must be some routine that does all this.

Araquay 06-22-2009 04:24 PM

Wow. I knew a lot of work goes into the fish model, but I didn't realize it was that complex. Thanks for the answers Jim. I really enjoy this program and look forward to all of your future updates.

Alan

Jim Sachs 06-22-2009 05:11 PM

Windows on a car would be stationary in relation to the car, so there's no reason they can't be a separate sub-object. It's moving parts like fins that cause trouble. If they are separate objects, then there will be an awkward area where they meet the body. Until recently, CG humans always had this unrealistic area around shoulders, elbows, hips - any joints. One object would simply flow into another with no stretching or compressing of the skin. The latest efforts seem to be one-piece objects, but they don't need transparent fins at the end of those arms.

MadBob 06-23-2009 05:07 AM

Would it not be possible to create a single piece object that encloses the seperate piece for the fin, the internal object being seperate but moved by the boundries of the external one, the external one is completely transparent where the inside fin shows through, the internal one shows the view behind it. the single piece object would then not have bad joints and you would control where the internal object was.

Or maybe the external object would be moved by the boundries of the internal object instead.

probably too simplistic a thought :)

Jim Sachs 06-23-2009 10:11 AM

Sorry, I didn't quite follow that - I'd need to see an example.

flipper 06-23-2009 10:47 AM

Techniques for handling order independent transparency have been around for a while, but they all involve running through the model geometry twice, once to establish depth and then again to apply the proper color. There are also feathering techniques you can use that just require multiple texture stages. That would at least get the edges of the fins rendered correctly.

The page at http://www.aorensoftware.com/blog/th...ever-heard-of/ discusses the problem in fairly easy to understand terms. There's a link to an Nvidia page with an example OGL app that uses the "depth peeling" technique mentioned in the link.

It's all still very expensive to properly handle a large amount of transparency/translucency in a scene. Jim's technique of sorting and rendering back to front is what most still rely on. What I've seen with a lot of models is the application of a special material to all of the non-opaque verts. Then D3D's attribute sorting is used once to get all of them segregated properly. Then all you have to worry about is the sorting of the faces within the non-opaque attribute set, since the other faces are rendered z-enabled. But you would still have to do some sort of depth layering to determine which non-opaque faces to render before and after the opaque, especially if they're inter-mixed depthwise like on a severely bent fish model. :)

I don't envy you this task Jim.

Jim Sachs 06-23-2009 11:13 AM

That's a good article, and explains my problem fairly well.

Another problem I'll need to deal with is transparency and layers in the body itself. This is very rare in saltwater fish, but will be needed when I do the Freshwater Tank. There are a lot of freshwater tropicals with transparent bodies, showing the internal organs underneath.

rctneil 06-23-2009 11:27 AM

I'm sure you'll figure it out eventually Jim!

Nicki 06-23-2009 01:20 PM

All of this makes me realise how lucky we are as consumers to be able to enjoy the magic without having to understand how it works .

henemly 07-04-2009 08:28 AM

Will ALL the ''new" fish models be done before any update?
(couldn't find any info on this, so don't flip out if already answered)

Jim Sachs 07-04-2009 09:26 AM

I'll probably put each one in as I get it done.

Overlord 07-04-2009 08:43 PM

That sounds like a great way to go. We have 30 little surprises coming at us periodically. Makes my purchase seem more like an investment. Thanks Jim!

Jim Sachs 07-04-2009 09:01 PM

28.

Ralph 07-04-2009 09:54 PM

Quote:

Originally Posted by Jim Sachs (Post 114518)
28.

All on 28
All random 30

Are the two "random" fish truly random ?... why is there a difference of 2 fish.. an arbitrary upper limit of 30?
To provide a randomness and limit to no more than 30 fish means you are not planning to add new species?? or will some be doomed to extinction.

Jim Sachs 07-05-2009 12:08 AM

When Random is on, and the number is set to 30 (yes, that's arbitrary), the program will choose fish at random, trying never to repeat. After chooseing all 28 different ones, it will simply repeat two at random.

There will be more fish in the Creature Packs.

Haree78 07-06-2009 09:52 AM

Jim

It would be really nice if you would consider, as an option, the 'don't do repeats' in the randomiser. I personally would turn this off and would enjoy the possibility of 2 or more of the same fish (randomly), especially when Schooling is implemented.

-Haree

Jim Sachs 07-06-2009 10:33 AM

I'm not sure if I want to complicate the fish interface with more buttons. I figured if users wanted to repeat fish, they could simply add more of the ones they wanted.

henemly 07-06-2009 05:00 PM

v2.6 had that tick box but only a 7 max (same time) fish selection.

Jim Sachs 07-06-2009 08:43 PM

MA3 shares no code with MA2.6, I have to put in every feature from scratch.

Jim Sachs 07-19-2009 02:42 PM

Just as an update - I've had a bit of a breakthrough in my search for a way of doing the transparency needed for fins in the new single-object fish models.

rctneil 07-19-2009 03:07 PM

Great news, We shall begin expecting a new beta then!








:D


All times are GMT -6. The time now is 12:05 AM.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.