[闲聊] 听说XX卡偷掉一个颜色没算 所以特别快

楼主: jk21234 (BL2400PT真不错)   2017-03-13 00:26:41
非常抱歉我只记得大约两个月前在某篇的推文看到
可是现在怎么翻都找不到 所以针对这个疑问回答......
答案:单独偷掉一个颜色不去算是不可能的
因为算出来的样子..... 如果你有兴趣知道 用搜寻引擎找
"色盲者眼中的世界"这种套图......会有八成像
(就是说 RGB之所以是光的三原色 跟你的生理性质
比较有关 你眼睛中真的有三种功能对应RGB...)
但是偷颜色来变快还是可行的 而且 很好 很强大 很常见(或许??
偷的方法就不一样了 一般建议 偷尾数
怎么说?
首先拿一杯水 里面滴99滴墨汁 然后再拿一杯水
滴上100滴墨汁 如果这两杯水没有摆在一起 大概你完全看不出
哪一杯是哪一杯 因为只差了1/100
所以不用每次算都很刚好 差个1或者1%或许不会怎样
可是有误差跟加速怎么搭得上关系?我设计一个加法功能
A+B很接近100的时候会给我100,这样有可能变快吗?
这样做当然不会,事实上通常加减跟乘不太会因为
你算的不精确得到什么好处 所以不是在这边使用的
那么来先考虑 比乘法更复杂的东西好了 首先应该是?
小学生都知道乘法学完要学的是除法
回想起你印象中的加减乘除的所有直式算法
加减是不是两排搞定 而乘法就做了很多排分别乘起来再加
而除法比逆向的乘法更复杂 要不断退位 还会除不尽要算到最后
真实的计算电路也很像这几个直式 加减法算N个bit不会太复杂
乘法就可能平方倍大小 除法除了比乘法电路还大 可能还要一直循环
计算到最后1bit结束为止
那么假如我32bit的资料 也许我除法就做前面1/2或者2/3的bit
后面随便放 或者是一开始就没有除法 只有倒数的查表(查表就不可能
满足32bit了 一定先砍资料长度再查)
总之我有很多办法,让原本正常做要几十个cycle的除法降低成为几个
cycle,可是我顶多保证前面一部分是正确的 后面比正确值大或小
不知道.这样的最大误差...比如说前16bit正确 就是误差1/256之内
也许对后面的资料而言这误差可以接受 也许后面会算到爆炸
如果对还是纯GPU的时代.误差一般都没什么 或者做游戏的不满意再自己修
除法之上还有log, logE, sin, cos等等运算 原理都相同,正常算要一大把
时间 提供快速算有误差的给你自己考虑用不用
但后来有了GPGPU 有些程式设计者就无脑的要求你的结果都要跟CPU一致
所以完全只能算不精确的运算的GPU应该都不见了 要嘛这些GPU
提供两套硬件 一套完整精确度但是慢一套快 或者是他的完全精确的
是以硬件指令为基础 但是后面用数值方法再修正.....
最后我有没有办法知道哪个游戏或者哪个硬件用的是不精确有误差的
版本 除了他自己揭露给你看或者你逆向工程挑战他吧 (??
==>如果看到同一个游戏 有的卡颜色鲜艳有的卡颜色平板 后者
是偷掉颜色的运算吗?
我认为两者无关 颜色可以后来再加强...
而且经过后制加强的似乎更容易掩盖住有使用不精确运算的方法的结果
如果叫你一个月都吃某力炸酱面 然后端两碗饭 里面各加了两粒盐跟三粒盐
再来分辨 应该是不可能成功的吧.
反之加料成重口味的东西 你就更难分出差异在后面小小的范围内的误差了呀

Links booklink

Contact Us: admin [ a t ] ucptt.com