die einfachste und schnellste lösung (finde ich) ist, die hintergrundfarbe in C4D so auszuwählen, dass sie einen mittelwert aus den tatsächlichen hintergrundfarben im spiel darstellt...der mit AA erzeugte "Rahmen" ist dann kaum sichtbar...
ich erzeuge figuren in POVRay lieber ohne AA aber 4x oder 8x so gross, wie ich sie brauche, dann verkleinere ich sie mit IrfanView unter benutzung der Resample-funktion (das ergebniss dürfte so ähnlich sein wie C4D mit AA)...
die hintergrundfarbe wird auch hier 'angehängt', aber:
1. mittelwert-hintergrund erzeugt unauffällige kanten...
2. schwarzer hintergrund gibt dem ganzen einen comic-look
ODER
erzeuge deine sprites 4x so gross ohne AA und stelle sie mit Sprite3D und ZoomSprite3D dar...
;-------------------------------------------------------------------
LoadSprite(0, "Name.bmp", #PB_Sprite_Texture)
CreateSprite3D(0, 0)
Sprite3DQuality(1) ; das erledigt das interne AA im sprite, nicht zum aktuellen hintergrund
TransparentSpriteColor(0, R, G, B) ; Hintergrundfarbe, die beim erzeugen verwendet wurde
...
; MainLoop
...
Start3D()
ZoomSprite3D(0, X-größe, Y-größe)
DisplaySprite3D (0, xCoor, yCoor, 255) ; 255 ist undurchsichtig (transparenz-wert,alpha), damit kannst du ein getroffenes opfer auch flackern lassen
Stop3D()
...
;-------------------------------------------------------------------
damit ist dein sprite 'intern' weichgezeichnet, die kanten sind so oder so pixelig, da nur eine farbe als transparent dargestellt wird....
braucht aber massig grafikkarten-speicher, nämlich 16x so viel bei 4-facher kantenlänge...
[EDIT]
btw. auf den meisten grafikkarten muss 'ne texture quadratisch und 2^x sein... also 32x32, 64x64, 128x128 etc...
wenn also deine grösste ausdehnung bei max.32 pixel liegt, erzeuge es auf 128x128 und stelle es 32x32 dar. analog bei den anderen grössen, also 512x512 erzeugen für 128x128 darstellung...
...wenn du wie bei moorhuhn gleichaussehende aber verschieden grosse sprites hast, brauchst du nur eine vorlage für beide...
[EDIT2]
wenn du speicherplatz sparen willst (z.b. bei anims), lade die anim-frames in den hauptspeicher, und mache ein CopySprite in ein sprite dass du im Texturenspeicher erzeugt hast, von diesem dann das Sprite3D erstellen (geht vielleicht auch, wenn du's vordefinierst, musst vielleicht nur den CopySprite Befehl im Loop haben...)
@GPI: deine lösung ist echt tricky... ist sie auch schnell ?
btw: kann man mit WindowedScreen vielleicht auch sprites vor einem AVI plazieren ???!!!!???
