From 547761eb0d230ad0114fdc53762f888e67d5dbd2 Mon Sep 17 00:00:00 2001 From: Anthony Samms Date: Thu, 20 Nov 2025 16:53:53 -0500 Subject: [PATCH] fix crunchiness on textures I create --- libs/bg_objects/chibi.py | 1 + libs/texture.py | 10 ++++++++++ libs/utils.py | 2 ++ libs/video.py | 1 + shader/outline.fs | 6 +++--- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/libs/bg_objects/chibi.py b/libs/bg_objects/chibi.py index bbb2bc1..8fbcdfd 100644 --- a/libs/bg_objects/chibi.py +++ b/libs/bg_objects/chibi.py @@ -58,6 +58,7 @@ class BaseChibi: class ChibiBad(BaseChibi): def __init__(self, index: int, bpm: float, tex: TextureWrapper, is_2p: bool): + self.tex = tex self.is_2p = is_2p self.bpm = bpm self.index = random.randint(0, 2) diff --git a/libs/texture.py b/libs/texture.py index 240610a..1f26bb6 100644 --- a/libs/texture.py +++ b/libs/texture.py @@ -37,6 +37,16 @@ class Texture: self.width = self.texture.width self.height = self.texture.height self.is_frames = isinstance(self.texture, list) + if isinstance(self.texture, list): + pass + for texture_data in self.texture: + ray.GenTextureMipmaps(ray.ffi.addressof(texture_data)) + ray.SetTextureFilter(texture_data, ray.TEXTURE_FILTER_TRILINEAR) + ray.SetTextureWrap(texture_data, ray.TEXTURE_WRAP_CLAMP) + else: + ray.GenTextureMipmaps(ray.ffi.addressof(self.texture)) + ray.SetTextureFilter(self.texture, ray.TEXTURE_FILTER_TRILINEAR) + ray.SetTextureWrap(self.texture, ray.TEXTURE_WRAP_CLAMP) self.x: list[int] = [0] self.y: list[int] = [0] diff --git a/libs/utils.py b/libs/utils.py index 9830430..27ba399 100644 --- a/libs/utils.py +++ b/libs/utils.py @@ -175,6 +175,8 @@ class OutlinedText: self.texture = self._create_text_vertical(text, font_size, color, ray.BLANK, self.font) else: self.texture = self._create_text_horizontal(text, font_size, color, ray.BLANK, self.font) + ray.gen_texture_mipmaps(self.texture) + ray.set_texture_filter(self.texture, ray.TextureFilter.TEXTURE_FILTER_TRILINEAR) outline_size = ray.ffi.new('float*', self.outline_thickness) texture_size = ray.ffi.new("float[2]", [self.texture.width, self.texture.height]) diff --git a/libs/video.py b/libs/video.py index 88c872a..137a943 100644 --- a/libs/video.py +++ b/libs/video.py @@ -66,6 +66,7 @@ class VideoPlayer: 'format': ray.PIXELFORMAT_UNCOMPRESSED_R8G8B8 }) self.texture = ray.LoadTextureFromImage(image[0]) + ray.SetTextureFilter(self.texture, ray.TEXTURE_FILTER_TRILINEAR) else: if frame_data is not None: frame_bytes = frame_data.tobytes() diff --git a/shader/outline.fs b/shader/outline.fs index 61708d1..fc9a9dd 100644 --- a/shader/outline.fs +++ b/shader/outline.fs @@ -17,8 +17,8 @@ void main() // Calculate outline float outline = 0.0; - int ringSamples = 64; - int rings = 4; + int ringSamples = 16; + int rings = 2; for(int ring = 1; ring <= rings; ring++) { float ringRadius = float(ring) / float(rings); for(int i = 0; i < ringSamples; i++) { @@ -28,7 +28,7 @@ void main() } } outline = min(outline, 1.0); - outline = smoothstep(0.1, 0.6, outline); + outline = smoothstep(0.3, 0.7, outline); float edgeStart = 0.5 - smoothness * 0.3; float edgeEnd = 0.5 + smoothness * 0.3;