设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 9104|回复: 28
打印 上一主题 下一主题

[已经过期] Pixel Shader[来吧 杀了这个就能升级了]

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
跳转到指定楼层
1
发表于 2013-4-3 08:14:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 viktor 于 2013-4-3 21:39 编辑

===拿出所有的VIP悬赏 跪求能够在RM中使用Shader的脚本===



具体要求:
能够使用Shader对RM的Bitmap进行操作,或者使用其他的合适方式,引入Shader对RM的画面进行处理也行
处理速度要能满足实时处理:至少20fps吧
使用的hlsl/cg脚本很容易在脚本里修改
原创脚本或者在网上搜索的都可以(虽然在下已经粗略地搜索过了,没有相关内容),请提供一个中文或者英文的样例

现在的讨论进展:
  • 既然我诚心诚意地问了,那么一定有解决的办法,如果想放弃RGSS,请出门左转Unity
  • 本帖也是探讨一下使用Shader处理Bitmap的可行性,如果您觉得【不可能!】或者【不可能实时!】请说出您的理由,我也会重新考虑这个问题的可行性。如果真的不能做到,那么悬赏的VIP也会分给能提出充分理由的童鞋。
  • 关于那个视野脚本,如果Shader问题能够顺利解决,我会第一时间发一个XP/VA的版本呢。至于现在,我并不想发一个半成品。





以下是背景资料和线索

1【Shader是什么?】
pixel shader是在显卡上执行的一种程序。它可以高效地对纹理的每一个像素进行运算。
这使我们能够实时地完成多种特殊效果,比如多重纹理、逐像素光照、视野深度、云层仿真、火焰仿真和复杂阴影技术。
可以部分理解为使用显卡,实时地对游戏的图片进行PS

2 【为什么RM需要Shader?】
为了更炫丽的效果。
有很多前辈都开发过RM的图片滤镜库,例如6R天干宝典中就有“图片滤镜效果样例”,或者11区的WF-RGSS,或者RMVA自带的Bitmap.blur/radial_blur模糊效果。
但是这些库里面各种效果都没有办法实时使用,原因就是“这一操作需要时间”

因为它们都是使用CPU进行计算,没有利用到显卡。
而Shader的最大特点就是他完全是在显卡里运行,非常高效而且不耗CPU。现在即使是集显也支持相当数量的Shader效果

3 【有什么线索么?】
在下不会DX,知道的只有以下这些:
http://blog.csdn.net/pizi0475/article/details/4241024
RM的Bitmap,其实就是DX的纹理。所以用Pixel Shader去操作RM的图片,实际上是对纹理进行操作

4 【我拿这个准备用在哪里】
Shader有很多用途,上面已经说了。
我自己写了一个实时视野光效的脚本,现在需要增加一个动态模糊效果,否则效果只能是这样的……

如果有了动态模糊,这个光影就会变得非常自然。我曾经用那个WF-RGSS试过,非常慢(0.5fps)


再次跪谢


@喵呜喵5 @晴兰 @yangff @凌童鞋  
堵上人参的悬赏,当掉了骑士的高头大马,重新拿起量产型长剑

点评

不明觉厉,纯支持……  发表于 2013-4-3 13:57

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-4-3 08:21:53 | 只看该作者
看不懂,是类似这种东西吗?
http://www.santuariorpgmaker.com/forum/index.php?topic=10336

点评

我也看不懂啊,只是逛rgss网页时看到,觉得和您说的有点像,但实际我是完全不懂这个。  发表于 2013-4-3 08:58
对 就是这种实现滤镜效果的脚本。但是这个我看不懂,不知道他内部使用了Shader没有?还请麻烦测试一下,谢谢~  发表于 2013-4-3 08:33
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
3
 楼主| 发表于 2013-4-3 15:33:42 | 只看该作者
没人回答么……自己顶一下,顺便站楼备用
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

4
发表于 2013-4-3 16:02:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

5
发表于 2013-4-3 16:09:01 | 只看该作者
……除非换引擎,不然不可能。

点评

为什么这里这么多为什么?  发表于 2013-4-6 10:39
为什么?(我來乱的)  发表于 2013-4-4 10:52
为什么?  发表于 2013-4-3 21:05
为什么?  发表于 2013-4-3 19:35
为什么?  发表于 2013-4-3 19:27
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

6
发表于 2013-4-3 19:28:50 | 只看该作者
我对这个工程比较感兴趣,可以的话,发一个范例给我吧。
可以试着帮你优化一下。
[email protected]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

尽头

梦石
0
星屑
119
在线时间
278 小时
注册时间
2010-6-20
帖子
1280
7
发表于 2013-4-3 19:40:53 | 只看该作者
对于RGSS引擎还是算了吧。

点评

为什么?既然我诚心诚意地问了 那就肯定是有办法去做的.老外拿RM+DX连真3D都做出来了 不过Shader的我真没找到  发表于 2013-4-3 20:03
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

8
发表于 2013-4-3 21:42:42 | 只看该作者
我来解释一下为什么DX(OGL)+RM无法对画面进行具有实用意义的实时的修改。
首先先说一下我现在能做到的。
可以将RM的Bitmap,或者每一帧更新时的整个画面,打了个包丢给DX,OpenACC这类的GPU计算(群集计算)的库。
然后GPU高效计算之后。代替RM原有的绘制操作,进行绘制。
但是路人皆知显存和内存交换数据简直就是茶几上的悲剧。
什么,你不信……你知道自从我用了batch之后画面绘制的效率提高了100倍么?
-----------
可以看出,楼主想要实现的是对RM中的图元(Bitmap)进行修改。
大家都知道,RM使用DD进行画面绘制,原生不支持Shader。
然后,RM非常悲剧,Bitmap什么的都在内存里面。
如果要Hook的话,可以用过一些简单的方法,把这部分(DX)数据撸到Shader,然后两面交换一下丢回来。这是没有问题的。
包括Tilemap。
但是这样操作会有比较蛋疼的效率问题。
目测精灵超过200个就得跪。
怎么办?
当然有办法。
只要智商没有问题的人都看出来了这里该死的内存和显存……你们……
于是,只要愉快的接管RM的Graphics啦,Tilemap啦,Bitmap啦,Viewport啦,Sprite啦,吧啦吧啦,把数据统统塞在显存就可以轻松高效加愉快的解决问题了。
接下来是抢答时间……请问如果你用了fmod,RM的引擎还剩下什么,你确定是Ruby而不是Ruby而是Ruby!
> 然后你可以去找@晴兰 考虑一下在RM的窗口里面塞个DX然后就没有然后了。不对……你还是可以画RM本来有的东西……

点评

学习了  发表于 2013-4-3 21:52
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
9
 楼主| 发表于 2013-4-3 21:46:51 | 只看该作者
Sion 发表于 2013-4-3 19:28
我对这个工程比较感兴趣,可以的话,发一个范例给我吧。
可以试着帮你优化一下。
...

额……因为这个脚本是和机油合作的,不能随意处置。
我大概说下原理吧……

1.每一帧计算每一格的光照值,视分辨率一共要算400-800次;
2.使用Fill_rect把亮度矩形画在1个Sprite上,只画改变的部分,一共要画0-800次;
4.把那个Sprite放在地图上面

其中第2步就是使用CPU进行像素填充,这已经非常吃亏了。在默认分辨率下很流畅,但是1024*600的时候就只有20-40fps了。
还有没做的第3步是动态模糊。每一帧只要把光照图模糊1个像素,显示效果就可以大幅提高。我曾经用过WF-RGSS和PRFilter的滤镜测试,他们都是用CPU进行模糊,加上以后直接变成0.5fps

点评

了解~ 那些底层的东西我不会,只有静观其变啦。  发表于 2013-4-3 22:46
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

10
发表于 2013-4-3 21:48:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-2 11:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表