20,226
edits
Paradox-01 (talk | contribs) m (formatting) |
m (link fix) |
||
| (17 intermediate revisions by 3 users not shown) | |||
| Line 2: | Line 2: | ||
:For one thing, incomplete/inaccurate knowledge may be a reason why repacking (with OUP) fails. | :For one thing, incomplete/inaccurate knowledge may be a reason why repacking (with OUP) fails. | ||
:Also, import and export lack a few features (alpha, env maps) and may get colors slightly wrong. | :Also, import and export lack a few features (alpha, env maps) and may get colors slightly wrong. | ||
:Basically, the incomplete/inaccurate information is related to the three bytes below, and to the associated | :Basically, the incomplete/inaccurate information is related to the three bytes below, and to the associated raw/separate file formats. | ||
:One not-too-comfortable aspect is that apparently contradictory settings for the 3 bytes are ''somehow'' interpreted by Oni. | :One not-too-comfortable aspect is that apparently contradictory settings for the 3 bytes are ''somehow'' interpreted by Oni. | ||
::[[User:Geyser|geyser]] 21:09, 3 February 2007 (CET) | ::[[User:Geyser|geyser]] 21:09, 3 February 2007 (CET) | ||
;[ | ;[[wp:Mipmap|MIP mapping]] (MIP stands for "multum in parvo") | ||
:A texture mapping technique that uses multiple texture maps, or MIP maps. Each MIP map is half the size of the first one, providing several texture maps for various levels of depth. | :A texture mapping technique that uses multiple texture maps, or MIP maps. Each MIP map is half the size of the first one, providing several texture maps for various levels of depth. | ||
;[ | ;[[wp:Alpha compositing|Alpha blending]] | ||
:In computer graphics, the combining of the alpha channel with other layers in an image in order to show translucency. | :In computer graphics, the combining of the alpha channel with other layers in an image in order to show translucency. | ||
:The alpha channel is an additional eight bits used with each pixel in a 32-bit graphics system that can represent 256 levels of translucency. | :The alpha channel is an additional eight bits used with each pixel in a 32-bit graphics system that can represent 256 levels of translucency. | ||
| Line 54: | Line 54: | ||
:Well, IMO they're bitsets. I fixed that a long time ago. [[User:Ssg|Ssg]] 10:59, 13 February 2007 (CET) | :Well, IMO they're bitsets. I fixed that a long time ago. [[User:Ssg|Ssg]] 10:59, 13 February 2007 (CET) | ||
:You "fixed that" ''where''? I can't see it detailed on OS... [[User:Geyser|geyser]] 04:05, 6 March 2007 (CET) | :You "fixed that" ''where''? I can't see it detailed on OS... [[User:Geyser|geyser]] 04:05, 6 March 2007 (CET) | ||
:[http:// | :[http://ssg.oni2.net/oni_txmp.htm Here?] [[User:Ssg|Ssg]] 12:19, 6 March 2007 (CET) | ||
:Not that it matters now, but IIRC you had ''not'' uploaded that update as of 2007/02/13... [[User:Geyser|geyser]] 13:41, 6 March 2007 (CET) | :Not that it matters now, but IIRC you had ''not'' uploaded that update as of 2007/02/13... [[User:Geyser|geyser]] 13:41, 6 March 2007 (CET) | ||
| Line 106: | Line 106: | ||
: | : | ||
:rgb555, rgb565, rgba5551, argb1555, argb4444, rgba4444, rgba8888, s3, compressed, i8, i1, i4a4 | :rgb555, rgb565, rgba5551, argb1555, argb4444, rgba4444, rgba8888, s3, compressed, i8, i1, i4a4 | ||
:(r=red, g=green, b=blue, a=alpha, i=intensity; see http://www.cg.tuwien.ac.at/~wimmer/view3dx/TEXUS.html too) | :(r=red, g=green, b=blue, a=alpha, i=intensity; see [https://web.archive.org/web/20130909194954/http://www.cg.tuwien.ac.at/~wimmer/view3dx/TEXUS.html HERE] too) | ||
| Line 116: | Line 116: | ||
Bitset (rather large: 18 bits at least) bytes are listed in Little Endian | Bitset (rather large: 18 bits at least) bytes are listed in Little Endian | ||
====0x 01 00 00 00==== | ====0x 01 00 00 00==== | ||
:MIP mapping enabled (generations stored in | :MIP mapping enabled (generations stored in raw/separate file, used at runtime) | ||
:Q: Anything special about MIP mapping of DXT1-compressed pixels? | :Q: Anything special about MIP mapping of DXT1-compressed pixels? | ||
:A: Not really, only the fact that a DXT1-compressed texture must be at least 4x4 pixels in size unlike an uncompressed image that goes down to 1x1 for mipmaps. [[User:Neo|Neo]] | :A: Not really, only the fact that a DXT1-compressed texture must be at least 4x4 pixels in size unlike an uncompressed image that goes down to 1x1 for mipmaps. [[User:Neo|Neo]] | ||
| Line 201: | Line 201: | ||
:Those 3 work the same for GL_RGB5 (pelvis), GL_RGBA4 (chest, head) and GL_RGB5_A1 (shoulders). | :Those 3 work the same for GL_RGB5 (pelvis), GL_RGBA4 (chest, head) and GL_RGB5_A1 (shoulders). | ||
::The alpha/envmap channel (if any) seems irrelevant (note that SHIELD, INVIS and DAODAN_SHIELD have no alpha) | ::The alpha/envmap channel (if any) seems irrelevant (note that SHIELD, INVIS and DAODAN_SHIELD have no alpha) | ||
:::I assume those bits don't affect the way the RGBA data is read from the | :::I assume those bits don't affect the way the RGBA data is read from the raw/separate file. | ||
:All 3 "effects" seem to be ignored for environment/skybox/object texturing: tried with several available store types. | :All 3 "effects" seem to be ignored for environment/skybox/object texturing: tried with several available store types. | ||
::They correspond to hard-coded eye candy, specially designed for shields, phase cloaks and boss shields. | ::They correspond to hard-coded eye candy, specially designed for shields, phase cloaks and boss shields. | ||
| Line 234: | Line 234: | ||
;9 | ;9 | ||
:compressed (four times) (algorithm detailed elsewhere) | :compressed (four times) (algorithm detailed elsewhere) | ||
::equivalent to [[ | ::equivalent to [[wikipedia:S3_Texture_Compression#DXT1|GL_COMPRESSED_RGB_S3TC_DXT1_EXT]] OpenGL compressed image format [[User:Neo|Neo]] | ||
:::(note: ARB stands for Architecture Review Board, not Alpha Red Blue ^^ [[User:Geyser|geyser]]) | :::(note: ARB stands for Architecture Review Board, not Alpha Red Blue ^^ [[User:Geyser|geyser]]) | ||
:Q: Aha, "dxt1". Any more ideas looking at | :Q: Aha, "dxt1". Any more ideas looking at '''BSL:PC vs. Mac Comparison (list)#Only_on_Mac_beta_4'''? [[User:Geyser|geyser]] | ||
:A: gl_disable_dxt1 probably decompresses the texture before passing it to Open GL. On the current videocards DXT1 is always supported and hopefully correctly implemented but when Oni was created things weren't necesarily as today. The 3 options are similar probably, either needed because of videocard/driver issues or maybe simply for debugging and testing. [[User:Neo|Neo]] | :A: gl_disable_dxt1 probably decompresses the texture before passing it to Open GL. On the current videocards DXT1 is always supported and hopefully correctly implemented but when Oni was created things weren't necesarily as today. The 3 options are similar probably, either needed because of videocard/driver issues or maybe simply for debugging and testing. [[User:Neo|Neo]] | ||
| Line 265: | Line 265: | ||
::Yes, "animated TXMP" is better because if you say TXAN, people like me will get the impression that you're doing something wrong, and will ask you stupid questions. Also, when you say it "doesn't seem to work" you should give some details. What does it mean that animated TXMP don't work in PSpc, or that reflectivity doesn't seem to work for animated TXMP? try to make the result of your experiment clear to others. --[[User:Geyser|geyser]] 00:13, 13 October 2008 (CEST) | ::Yes, "animated TXMP" is better because if you say TXAN, people like me will get the impression that you're doing something wrong, and will ask you stupid questions. Also, when you say it "doesn't seem to work" you should give some details. What does it mean that animated TXMP don't work in PSpc, or that reflectivity doesn't seem to work for animated TXMP? try to make the result of your experiment clear to others. --[[User:Geyser|geyser]] 00:13, 13 October 2008 (CEST) | ||
::* Ok, first case: I modified a Fury head texture (giving it alpha channel and a reflectivity map which was an animated TXMP). One images of the set was taken but no other more. | ::* Ok, first case: I modified a Fury head texture (giving it alpha channel and a reflectivity map which was an animated TXMP). One images of the set was taken but no other more. | ||
::* Second case: a striker got an animated TXMP for some body textures, every TXMP of a set should use a reflectivity map but these parts became transparent. [ | ::* Second case: a striker got an animated TXMP for some body textures, every TXMP of a set should use a reflectivity map but these parts became transparent. | ||
[[file:messed_up_Striker.jpg|thumb|Halloween Striker ^_^]] | |||
::* Third case: Part specification uses simple TXMP but I tried an animated on and it didn't work. It can take images out of the set but only one. --[[User:Paradox-01|Paradox-01]] 16:33, 13 October 2008 (CEST) | ::* Third case: Part specification uses simple TXMP but I tried an animated on and it didn't work. It can take images out of the set but only one. --[[User:Paradox-01|Paradox-01]] 16:33, 13 October 2008 (CEST) | ||
:::So you haven't kept the modded instances you used? Bad boy ^_^ I'm pretty sure the second case, at least, should work. Oh well, I guess I'll have to try all three by myself some other time. --[[User:Geyser|geyser]] 16:59, 13 October 2008 (CEST) | :::So you haven't kept the modded instances you used? Bad boy ^_^ I'm pretty sure the second case, at least, should work. Oh well, I guess I'll have to try all three by myself some other time. --[[User:Geyser|geyser]] 16:59, 13 October 2008 (CEST) | ||
::::Irony of life: case 2 is already deleted. But you can have a look onto the others: | ::::Irony of life: case 2 is already deleted. But you can have a look onto the others: <nowiki>http://www.paradox.oni2.net/temp/case1.zip</nowiki> (dead link) and <nowiki>http://www.paradox.oni2.net/temp/case3.zip</nowiki> (dead link). | ||
::::PS: Reflection means to me a mirrored image. I call ''our'' reflection a fake since it doesn't reflect (mirror) the environment but shows another image. Look at the fury's head closely: there's just the bomb_fire texture inside. --[[User:Paradox-01|Paradox-01]] 17:59, 13 October 2008 (CEST) | ::::PS: Reflection means to me a mirrored image. I call ''our'' reflection a fake since it doesn't reflect (mirror) the environment but shows another image. Look at the fury's head closely: there's just the bomb_fire texture inside. --[[User:Paradox-01|Paradox-01]] 17:59, 13 October 2008 (CEST) | ||
:::::If you consider non-convex objects (like two mirrors "seeing" each other), you can see that "real" reflections of the environment would be very heavy to compute (the multiple reflections can require a virtual infinity of rendering passes), so naturally games use more or less elaborate "fakes". Oni's fake is actually quite primitive and a reflective ball, for example, won't look realistic at all as you move around it (I hate that ^_^). But I digress; I was just confused by the word "inside" as you used it. Now... back to cases 1-3: cases 1 and 3 indeed "don't seem to work"; for 3, the engine ignores animations when setting up the envmap; for 1, it's a shame, but the engine ignores animations when setting up the windows, too; 2 ''does'' work, but since OniSplit doesn't allow you to create the right thing directly right now, both of us had to use a workaround and I have no idea where you messed up. Try again ^_^ --[[User:Geyser|geyser]] 02:33, 14 October 2008 (CEST) | :::::If you consider non-convex objects (like two mirrors "seeing" each other), you can see that "real" reflections of the environment would be very heavy to compute (the multiple reflections can require a virtual infinity of rendering passes), so naturally games use more or less elaborate "fakes". Oni's fake is actually quite primitive and a reflective ball, for example, won't look realistic at all as you move around it (I hate that ^_^). But I digress; I was just confused by the word "inside" as you used it. Now... back to cases 1-3: cases 1 and 3 indeed "don't seem to work"; for 3, the engine ignores animations when setting up the envmap; for 1, it's a shame, but the engine ignores animations when setting up the windows, too; 2 ''does'' work, but since OniSplit doesn't allow you to create the right thing directly right now, both of us had to use a workaround and I have no idea where you messed up. Try again ^_^ --[[User:Geyser|geyser]] 02:33, 14 October 2008 (CEST) | ||
{{OBD}} | |||
{{ | |||