View Single Post
Old 17 January 2020, 22:24   #17
Sleeper Grey
keeper of the Stone Gem
 
Sleeper Grey's Avatar
 
Join Date: Nov 2019
Location: Saint Petersburg
Posts: 32
While Mr. JackAsser still cannot be found I've made a much better version. Original post updated.

As I have checked various portraits ~in situ~... In real EoB-3 screenshot!

A new portrait might be nice by itself but it must "seamlessly" fall into the game color contrast and style scheme.

This shows why the potraits were changed in EoB-3 and how a new good version ~should~ look.
First, let's take the original, non-crocodile Green Girl portrait from EoB 1-2 and "paste" it into real EoB-3 screen.

The horror will be great. It's no good.
The use of low contrast colors in EoB 1-2, on a big screen showing all pixels, makes it look bad.



The face is "off", the features are not sharp, no contrast. The color is not "high and mighty" as EoB-3 uses it. Empty eyes are also a weakness.
On a small monitor with surrounding EoB-1 color scheme it was OK. But on a bigger screen with all pixels in view, in EoB-3 surroundings it looks very bleak and shabby.

As we can see it on the same screenshot EoB-3 adds "shiny" light spots to 3 other portraits and uses higher contrast colors - to make the portraits look "sleek", "bold" and lustrous.
Exactly like the shiny marble in the Mausoleum. Not a bad idea really.

Poor Green Girl from Eob-1 has no chance here. She has no of the abovementioned features. So, she was reworked.
Let's see what the official EoB-3 artist did. Again, some horror.



High brightness and green high contrast colors were added.
Empty eyes were changed into Violet, that goes nice with green, and Blue. (Too much really).

The hood is nearly unchanged. The mask is crude but shiny as EoB-3 color style dictates it.
But the face - is, well, a complete failure. Very big face, very ugly and a huge nose.

It's a ~Reptile~ masquerading as Jade, in Mortal Kombat terms!

Also this face has turned white to be shiny with light spots. While the original Green Girl from EoB 1-2 is not really white. She had darker skin shade. Strangely, exactly like the original Jade the green ninja from Mortal Kombat 2.

So, making a non-white character totally white (and ugly) is also no good.

Now our goal is clear. To keep the main features of the original EoB 1-2 face, let's look on it once more...



Give this lady a simpler viewing angle and more contrast and it will be OK.
I would not move pixels more than 1 position to any side.

Violet eyes are OK also. And let's keep the darker skin.

Here. Great on small screens too.




No more reptiles. It's the old "Jade", near all pixels are in place. Now looks colorful enough and on par with the bright Gold Lady or the Red Girl on the screenshot.

Cleaner and bright colors. Not unsightly anymore.
And her face is -not- bigger than that of male fighter. No huge nose.

I would use this portrait anytime instead of the "reptile" she was turned into by official EoB-3 artists.

Also 2 portraits were, believe it or not, censored(!) in EoB-3. Restoration is in order.

How we really code such portrait properly for the game, though, remains to be seen.

Does someone really understand the holy writings of JackAsser on this format? (below)

---
Eye of the Beholder III - BMP-fileformat


Format description

struct BMP
{
unsigned short fileSize;
unsigned short unknown1;
unsigned short unknown2;
unsigned short unknown3;
unsigned short unknown4;
unsigned short width;
unsigned short height;
unsigned char compressedData[fileSize-14];
}


Compressed data is composed of height amount of lines, each line is composed of one or more chunks. Each chunk utilize two schemes, either copy or fill.
for each line
line#, {xpos,islast,rle_width,rle_size, rle_data[rle_size] }*

xpos Start x-pos of this chunk.
islast $80=this is the last chunk, $00=more chunks follow.
rle_width The depacked width of the rle_data.
rle_size The number of packed bytes.
rle_data The compressed data for this chunk.

As mentioned before rle_data uses two different schemes, either copy or fill.

Basically the layout of the RLE-data is:
wwwwwwwm w=width-1 m=mode (0=copy 1=fill)

if (m==0)
unsigned char rawdata[w+1] (copy raw data)
else if (m==1)
unsigned char colorvalue (fill w+1 pixels using colorvalue)

That's it.

For example depack source, check bmpdepack.tgz


---
Waiting for some help here.
Come on, why playing the ugly game if it can be corrected.

Last edited by Sleeper Grey; 18 January 2020 at 00:11.
Sleeper Grey is offline  
 
Page generated in 0.08973 seconds with 11 queries