PDA

View Full Version : texblend or visible for multiple textures


vizmaster
01-18-2007, 01:25 PM
I have implemented the flipping between textures two different ways and would like to know if there are advantages to either approach (memory management, limits, etc).
I am loading about 1GB of texture at a time. Therefore, I would like to be displaying one texture while loading the next.
First approach was to have tiles that have two textures each. Then use texblend to flip between them. I used director to load a new texture while displaying the other. The only drawback I have seen is panning over the texture was slowed by the loading. This was not visible when I moved to a faster PC.

Second approach was to load each texture onto its own set of tiles. Then switch between them with quad.visible(viz.TOGGLE). This works well in that I can pan the texture while loading the other. However, as I try to load another texture I run out of memory. Removing the old textures at the right time may resolve this problem.

As I initial said I would like to know if either approach is better and for what reasons. Thanks,

farshizzo
01-18-2007, 04:54 PM
Hi,

Is it necessary to use texblend to flip between the textures? Can you simply apply the new texture to the tile once it is loaded, overriding the old one?

I'm not clear on what you are doing in the second method. Is it loading both sets of textures into memory at once, then toggling between them?

If this is the case then the first method won't have as much memory issues since you are loading the tiles on demand, but you will have performance issues from the loading.

The second method requires more memory, but if all the data fits into memory then the performance should be better than the first method.

For your case memory seems to be more of a bottleneck, so I would prefer the first method.

Let me know if I misunderstood anything.

vizmaster
01-23-2007, 12:43 PM
Hi,
Since I am loading over 1GB of texture, I load 2048x2048 of texture onto a each tile of a tiled billboard. If I load the texture dynamically it takes upto 20 seconds to load. To slow.
The second method is loading both textures into memory.
The thing is I don't want to only load two textures. While I am displaying one texture I would like to load the next texture to be displayed.
In both approachs are the textures loaded into memory?
Thanks,

k_iwan
02-05-2007, 09:39 PM
@ Vizmaster:
Hi, I'm not quite sure what you're trying to achieve... are you trying to put up like an "advertising" within Vizard where the images loop / change with time? 2k x 2k texture is way to huge for this purporse, I don't know what your spec is, but loading a 2k x 2k for something to be displayed for less than 20 sec is a waste of hardware resources (IMHO)

May I suggest another method if you're doing an "Advertising" within vizard where the image changing over time...
[1] Use jahshaka to string all the images together, create a movie file .avi or .mpg where each image will be diaplayed for only say .. 10 sec.
[2] export this video at this res 512 x 384 pixels or lower
[3] Apply this video file onto a quad / poly and loop it.

I hope this helps/gives some ideas.

Regards,

Iwan
Macquarie University

vizmaster
02-06-2007, 07:52 AM
I am panning over a large panorama 50000x6000 pixels. Each tile represents 2kx2k portion of the entire image. Once the viewer is done with one image I want to display the next image in a timely manner. Currently an image can take up to 15 seconds to load. This is not acceptable for my needs. Therefore I plan on preloading the next image based on one of the methods I describe in this thread.
thanks for the ideas. Currently I am looking at still images. If I need motion I will keep your ideas in mind.

farshizzo
02-06-2007, 11:40 AM
I've found ways to potentially speed up the loading time of the images and perform it asynchronously, while cutting down on the memory overhead. Do you need the entire image to be displayed at once, or can it show up in pieces as it is being loaded?

vizmaster
02-06-2007, 02:19 PM
I am displaying only 1024x768 at a time. However, since I don't know where I will be looking in the panorama when the next image comes up I would need to have the entire image available.

k_iwan
02-12-2007, 06:00 PM
@ farshizzo:

My current machine is choking at 3k x 1k. If there is a way to display a hires texture in real time like you described earlier, I would like to learn as well.

Regards,
-e1-

vizmaster
02-13-2007, 10:15 AM
Is it a single texture you are trying to make dynamic?
Are you showing a movie?
Is it a 3D world that you are trying to navigate pass this large texture?

At 3K you may be hitting the hardware limits of the graphics card. Most like 512,1024,2048 squares. In my reading I noticed that Vizard does handle odd shaped textures as well.

What is the frame rate 30fps or 60fps?

I have enclosed my scripts for tiling and displaying very large images. The displaying of an image is started by a mail event that includes a filename to display. Maybe these will spawn an idea for you.

farshizzo
02-13-2007, 12:42 PM
As vizmaster already asked, is this a static texture or a dynamic texture that is being updated at some real-time rate? How much memory does your graphics card have?

If your graphics card supports texture compression, then you can greatly reduce the amount of texture memory required. However, texture compression will require your image dimensions to be a power of two (512,1024,2048,etc..)

Here is sample code to compress a texture with the highest compression available:texture.compression(viz.COMPRESSION_DXT1 )

k_iwan
02-14-2007, 03:50 PM
Hi,

It was actually a panorama taken from a photograph (Static), it's not 3k x 1k, I think i was higher than that :P and worldviz automatically resized it to nearest power of two. Now, instead of using a sphere I used the environment mapping in vizard, so I generated 6 images of 2k x 2k for the skybox. the graphics card is geforce quadro (i'm not sure which series), and it has only 128 mb ram. then again... displaying 6 images of 2k x 2k seem to have better performance compared to a > 3k x 1k on a shpere... I could be mistaken, since you mentioned about the "compression" I might see how this might work with .dds format with mipmap enabled.

This is not a part of any project, only something which I do in my own spare time to push how far can the PCs go.

My avg frame rates for most scenes with 6 images (2k x 2k) would be 25 - 50 fps, no higher than 50 with terrain. with no terrain, only hires (2k) skybox can go up to 70 fps, with 1k skybox and no terrain I can hit up to 100 fps :D

thank you for your inputs, this technique would definitely improve frame rates.

Regards,
-e1-