Search found 144 matches

by Tvspelsfreak
Tue Nov 04, 2014 11:29 am
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

I could make it pick between RGB565, ARGB1555 and ARGB4444 if no format flag is given. Regarding the mipmap flag. I'm not sure it can be done easliy with the way it works now. The flags dictate what images are allowed to be loaded, not the other way around. It also allows for separate images for eac...
by Tvspelsfreak
Tue Nov 04, 2014 10:57 am
Forum: Programming Discussion
Topic: 3D physics/collision libraries that work on DC?
Replies: 17
Views: 2957

Re: 3D physics/collision libraries that work on DC?

ODE has been ported over. It's from 2003 though.
http://www.boob.co.uk/devtools.html
by Tvspelsfreak
Sun Nov 02, 2014 5:33 pm
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

Fixed! I Forgot to update the devectorization function for alpha textures.
by Tvspelsfreak
Sun Nov 02, 2014 5:11 pm
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

Did you compress that?

1.1M is pretty spot on for uncompressed. 1024*512*2 = 1048576 bytes, plus codebook and header. It should be around 130kB compressed.
by Tvspelsfreak
Sun Nov 02, 2014 3:55 pm
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

I've updated texconv with experimental support for rectangular, non-mipmapped VQ textures. It's been tested with a couple of RGB565 textures, one where w>h, and one where h>w. I also did some more testing with rectangular mipmaps, both with and without VQ. It seems the hardware assumes that w==h whe...
by Tvspelsfreak
Sun Nov 02, 2014 2:33 pm
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

Ok, I've done some testing. Rectangular VQ textures work fine on the actual hardware, and I only need to change a couple of lines in texconv to support it. I've also tried rectangular VQ textures with mipmaps, and it may work, not sure yet. I'm getting a partially scrambled output, so I probably jus...
by Tvspelsfreak
Sun Nov 02, 2014 11:44 am
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

I'm not sure about twiddling, but VQ could in theory work with rectangles as well, so I'd be glad if you found something out about that. Many game assets have rectangular texture sizes. I'd need to build texture atlases and change the UV maps of this mesh for example.. And we really don't want to w...
by Tvspelsfreak
Sun Nov 02, 2014 11:16 am
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

Why can VQ compression not be used with non-square images though? I don't think I've ever tried doing VQ compression on rectangular images. All sources say they need to be square. But then again, they also say paletted textures can't be compressed. I might try out that later. Are there any quality ...
by Tvspelsfreak
Sat Nov 01, 2014 8:49 pm
Forum: Programming Discussion
Topic: Texture compression size comparison study
Replies: 27
Views: 6360

Re: Texture compression size comparison study

Hey, The VQ compression ratio is fixed at 1/8th of the uncompressed size, plus a 2kB overhead for the codebook. Any texture format supported by the PVR2DC can also utilize VQ compression. So in the end, the compressed sizes are: (num_pixels / 4 + 2048) for 16BPP images (RGB565, ARGB1555, ARGB4444, Y...
by Tvspelsfreak
Sun Jul 27, 2014 6:35 am
Forum: Programming Discussion
Topic: Quake 3 lightmaps - PVR Multi-Texture
Replies: 106
Views: 22761

Re: Quake 3 lightmaps - PVR Multi-Texture

Yeah, you're right, I should've explained it better. What I meant was you'll have to send the same geometry one more time to flush the secondary accumulation buffer. EDIT: I thought you were talking about the lightmapping (which already is a one pass solution). :oops: I haven't messed around with th...
by Tvspelsfreak
Sun Jul 27, 2014 5:19 am
Forum: Programming Discussion
Topic: Quake 3 lightmaps - PVR Multi-Texture
Replies: 106
Views: 22761

Re: Quake 3 lightmaps - PVR Multi-Texture

No, you'll actually need an additional pass to flush the secondary accumulation buffer.

It's mostly used to mask out multitexture effects from the transparent parts of the base texture.
by Tvspelsfreak
Thu Jul 24, 2014 3:48 pm
Forum: Programming Discussion
Topic: Shaders
Replies: 48
Views: 6196

Re: Shaders

I could see adding a 'presort_disabled' to the initialization parameters, which would set it in the tile region array parameters (as you detailed in your post with changing the control word there). Since auto-sort is enabled by default today, wouldn't 'presort_enabled' or 'autosort_disabled' be the...
by Tvspelsfreak
Thu Jul 24, 2014 2:11 am
Forum: Programming Discussion
Topic: Shaders
Replies: 48
Views: 6196

Re: Shaders

But, it seems that changing the parameters at compile time is not the best solution here. I think it would be best to init the PVR in a way that allows the use of the ISP_FEED_CFG register to specify TR sort mode per-frame. Or is it possible to modify the tile matrix bits after initializing the PVR...
by Tvspelsfreak
Wed Jul 23, 2014 8:42 am
Forum: Programming Discussion
Topic: Shaders
Replies: 48
Views: 6196

Re: Shaders

It only changes how the TR list deals with translucency. In auto-sort, it sorts the polygons per pixel and renders them back-to-front. In pre-sort, they're rendered in the order they're submitted.
by Tvspelsfreak
Wed Jul 23, 2014 8:15 am
Forum: Programming Discussion
Topic: Shaders
Replies: 48
Views: 6196

Re: Shaders

Bit 21 = Region Header Type? ( 0 = TR sort mode set by ISP_FEED_CFG register, 1 = TR sort mode is specified by the pre- sort bit within the Region Array data ) And looking at the "magic value", we can see that Bit 21 is set to 1, so then in KOS ( by default ), TR sort mode is ignored in t...
by Tvspelsfreak
Tue Jul 22, 2014 9:07 am
Forum: Programming Discussion
Topic: Shaders
Replies: 48
Views: 6196

Re: Shaders

I guess the PVR really struggles with blending overlapped translucent polys? Yeah, it does. You can speed it up by disabling the hardware translucency auto-sort though. It's enabled in the pvr init code somewhere, can't remember off the top of my head, but I know it's been posted how to disable it ...
by Tvspelsfreak
Fri Jul 11, 2014 5:50 pm
Forum: Programming Discussion
Topic: New user intro / question(s) about Parallax and sprites
Replies: 14
Views: 1578

Re: New user intro / question(s) about Parallax and sprites

plx_txr_load loads pngs with either PNG_NO_ALPHA or PNG_FULL_ALPHA depending on its alpha parameter (full alpha in your case). The PT poly list only allows for 1-bit alpha (fully opaque or fully translucent). I'm guessing the missing pixels aren't fully opaque and aren't rendered because their alpha...
by Tvspelsfreak
Fri Jul 11, 2014 3:21 pm
Forum: Programming Discussion
Topic: New user intro / question(s) about Parallax and sprites
Replies: 14
Views: 1578

Re: New user intro / question(s) about Parallax and sprites

Do you get the same issues if you draw everything in the PLX_LIST_TR_POLY list?
by Tvspelsfreak
Fri Jul 11, 2014 11:00 am
Forum: Programming Discussion
Topic: New user intro / question(s) about Parallax and sprites
Replies: 14
Views: 1578

Re: New user intro / question(s) about Parallax and sprites

You might have some Z fighting going on. Try giving the sprites that should appear on top of the card a larger Z value.
by Tvspelsfreak
Thu Jul 10, 2014 12:58 pm
Forum: Programming Discussion
Topic: New user intro / question(s) about Parallax and sprites
Replies: 14
Views: 1578

Re: New user intro / question(s) about Parallax and sprites

If you want to use a non-power-of-two size vertically, allocate less than you actually specify in the polygon header. So, for instance, if you want a texture that is 24 pixels tall, allocate the space accordingly with pvr_mem_malloc() for that 24 pixel tall texture, but when you send the parameters...