`
sogotobj
  • 浏览: 646602 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

RGBA模式人物换色的实现

阅读更多

早期的即时战略游戏,如星际争霸,采用调色板模式,因而可以很方便的通过修改人物图片的调色板索引,达到换色的效果。在RGBA模式下,修改顶点色或设置材质自发光皆不能达到满意的效果,因为我们需要的是像素级别的颜色调整,和多边形无关,即便可以通过细分材质,那也很勉强,况且会增加材质数量影响性能。所以我经过研究,觉得唯一的方法还是改变纹理。(欢迎有人提供更好的方法,这也是我发表这个文章的目的)那么怎么改变纹理呢?法宝是HSV。纹理的像素值是在RGBA颜色空间的,而换色的效果其实是改变色相,也就是HSV颜色空间的H。所以先把像素从RGB变换到HSV,修改H达到换色效果,再变换回RGB,然后用改变后的像素位图生成新的纹理并替换。RGB,HSV转换的算法网上就有。有个问题是,修改H后传入HSV2RGB之前要先确保H的范围正确,或者算法中必须处理。另一个重要的问题是怎么确定哪些部分需要换成哪些颜色,一个很原始但有效的方法就是使用mask图。

分享到:
评论

相关推荐

    RGBA(三原色+透明度)与十六进制颜色转换工具

    在实际工作的项目中,经常会用到颜色的转换,一般是 RGBA(三原色+透明度) 转换为 十六进制颜色,或者十六进制颜色转换为 RGBA,此工具提供了 JavaScript 实现的双向转换的方法工具。

    16进制和rgba颜色的相互转换

    16进制和rgba、rgb颜色的相互转换,例如#fffff可转换成rgba(255,255,255,1),或者rgba(255,255,255)。可自定义透明度。

    PNG转换RGBA.exe

    因为本人用的是MCU,没使用linux或者andriod等系统,要做图片的透明叠加效果,在网上各种找PNG转565rgba和888rgba的工具软件,找了好久都一直找不到,实在没办法自己写了一个,用在本人的实际项目中。可以选择转换成...

    rgba8888转yuvsp420

    在计算机图形学和视频处理领域,RGBA8888是一种常用的色彩空间表示方式,它包含了红(R)、绿(G)、蓝(B)以及透明度(A)四个通道,每个通道使用8位来表示,总共32位。而YUV NV21是Android系统中常见的YUV格式,...

    RGBA模式下的5个雾化球体

    综上所述,这个话题涵盖了使用OpenGL实现RGBA模式下的雾化效果,特别是对于3D球体的渲染。开发者需要理解OpenGL的雾渲染原理,设置相应的参数,并且能够编写和调试相关的代码。同时,还需要熟悉场景描述文件和开发...

    图片转RGBA4444

    在Unity引擎中,图片资源通常是以各种格式存储的,如RGB、RGBA32等。"图片转RGBA4444"这个主题涉及到的是将图片数据转换为特定的RGBA4444格式。RGBA4444是一种颜色格式,其中每个像素包含4个位来表示红色、绿色、...

    颜色转换(16进制与rgb之间的相互转换,可自定义透明度rgba)

    颜色转换(16进制与rgb之间的相互转换,可自定义透明度rgba) 小程序适用。在小程序中使用时,请释放后尾的注释,文档中有说明。

    ffmpeg nvdia硬解封装GPU实现NV12-RGBA

    在本文中,我们将深入探讨如何利用NVIDIA的硬件解码功能,通过FFmpeg实现实时流(RTSP)拉取并在GPU上进行NV12到RGBA的转换。 首先,NVIDIA硬件解码指的是利用NVIDIA GPU的硬件加速能力来执行视频解码任务,这通常...

    图像模式转换(部位)

    对于其他模式如 RGB、RGBA、CMYK 等,转换过程相对简单,主要是根据目标模式的要求调整像素值。例如,从 RGB 转换到 CMYK,PIL 会自动执行颜色空间转换。 #### 四、注意事项 - 在进行模式转换时,需要注意原图像的...

    截屏(RGBA转RGB,RGB转JPG,JPG压缩)

    在编程中,可以使用各种库和API来实现这一功能,例如在Python中,我们可以利用PIL(Python Imaging Library)或者screenshot库来实现截屏。 2. **RGBA到RGB转换**: RGBA代表红、绿、蓝和阿尔法(透明度)四种颜色...

    vtkImageData转为RGBA类

    而RGBA是一种颜色模式,代表Red、Green、Blue和Alpha四个通道,其中Alpha通道通常用于透明度控制。 在`vtkImageData`到RGBA的转换过程中,我们需要做的是把`vtkImageData`的每个像素值映射到一个4通道的RGBA颜色值...

    IE浏览器支持RGBa的背景色.docx

    RGBa(RGBA)是CSS中定义颜色的一种方式,它扩展了传统的RGB(红绿蓝)颜色模式,添加了第四个参数a,代表alpha通道,用于指定颜色的透明度。RGBa允许开发者创建具有透明效果的颜色,这对于网页设计和UI交互来说非常...

    RGBA颜色混合模型

    ### RGBA颜色混合模型详解 #### 引言 在计算机图形学领域中,RGBA颜色混合模型是一种重要的技术,它被广泛应用于图像合成与处理之中。本文将深入探讨RGBA颜色混合模型的基本概念、工作原理以及实际应用中的注意...

    PicViewer RGBA32格式查看

    RGBA32格式查看,后续持续更新支持更多格式

    [opencv]013 简单RGBA通道的分离与混合

    本篇文章将详细探讨OpenCV如何处理具有RGBA通道的图像,以及如何进行通道分离与混合。 首先,让我们了解RGBA图像的基本概念。RGB代表红色(Red)、绿色(Green)和蓝色(Blue),这三种颜色通过不同强度的组合可以...

    RGBA数据转存BMP图片

    RGBA数据转存BMP图片。。。。。。。。。。。。。。。。。。。。 只有一个头文件,3个函数,包含使用即可。。。。。。。。。。。。。。。。。。

    CSS3 RGBA色彩模式使用实例讲解

    在CSS3中,RGBA色彩模式是一种非常实用的特性,它扩展了传统的RGB(红、绿、蓝)颜色模型,增加了alpha通道,用于控制颜色的透明度。RGB模式使用三个颜色通道来混合出各种颜色,而RGBA则添加了一个额外的通道——...

    hex-to-rgba:将CSS十六进制颜色代码转换为rgba()

    hex-to-rgba将老式CSS十六进制颜色值字符串转换为rgba()字符串。 (可选)传入一个alpha值。 传递的alpha值将覆盖4或8位十六进制的任何alpha值。 如果您根本不输入任何Alpha值,我们将默认使用Alpha值1(完全...

    rgba-to-hexa-tool:一个简单的工具站点,可在RGBA和HEXA之间进行转换(8位十六进制代码)

    RGBA透明度调整后的十六进制 这是一个Hex alpha或HEXA,就像我喜欢的那样,是一个8位数的十六进制代码,透明度值为#RRGGBBAA这个项目做什么? 这是一个在线工具,可以在rgba(和rgb)之间转换为十六进制代码,反之...

    rgba alpha 透明度的转换计算表

    在现代网页设计与开发中,RGBA颜色模式被广泛用于定义颜色,它扩展了传统的RGB颜色模式,增加了alpha通道,用于设置颜色的透明度。在RGBA模型中,每个颜色通道(红、绿、蓝)的值范围是0到255,而alpha通道的值范围...

Global site tag (gtag.js) - Google Analytics