当前位置: 首页 > news >正文

RGBA模式人物换色的实现

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

相关文章:

  • javascript实现QR code扫描
  • android webview旋转屏幕导致页面重新加载问题
  • FLEX实践—自创相册
  • Nebula3的渲染线程插件(Render Thread Plugin)
  • android webview 遇到android.os.FileUriExposedException错误
  • Ucweb的发展趋势
  • Asp.net MVC scheduler实现
  • 一幅图对比软件开发框架
  • 移动Mobile Market运营模式初探之二:价值链是关键
  • 为什么我认为软件方法论无效
  • ArcGIS Server Java ADF 案例教程 29
  • Nodejs + azure +webrtc 实现android 和web视频聊天步骤
  • ArcGIS Server Java ADF 案例教程 28
  • SSIS DSN contains an architecture mismatch between the Driver and Application
  • nodejs 客户端拍照调用azure face api对比身份证照片进行验证
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 230. Kth Smallest Element in a BST
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • es6(二):字符串的扩展
  • Facebook AccountKit 接入的坑点
  • Git的一些常用操作
  • Git同步原始仓库到Fork仓库中
  • happypack两次报错的问题
  • If…else
  • JavaScript中的对象个人分享
  • Promise面试题,控制异步流程
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Shadow DOM 内部构造及如何构建独立组件
  • SpiderData 2019年2月16日 DApp数据排行榜
  • uni-app项目数字滚动
  • 笨办法学C 练习34:动态数组
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 消息队列系列二(IOT中消息队列的应用)
  • 在Mac OS X上安装 Ruby运行环境
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • !$boo在php中什么意思,php前戏
  • (27)4.8 习题课
  • (八十八)VFL语言初步 - 实现布局
  • (分类)KNN算法- 参数调优
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)模仿学习-完成后台管理页面查询
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)C#调用WebService 基础
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • ***通过什么方式***网吧
  • *p++,*(p++),*++p,(*p)++区别?
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net IE10 _doPostBack 未定义
  • .NET NPOI导出Excel详解
  • .net操作Excel出错解决
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net开发引用程序集提示没有强名称的解决办法
  • ;号自动换行