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

Project1

 找回密码
 注册会员
搜索
楼主: ⑨姐姐
打印 上一主题 下一主题

[原创发布] 【RGD】使用 DirectX 驱动的 RMVA Game.exe(v1.6)

  [复制链接]

Lv4.逐梦者

梦石
0
星屑
19284
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
241
发表于 2020-3-20 10:18:18 | 只看该作者
本帖最后由 张咚咚 于 2020-3-20 10:20 编辑

反馈一个按键问题,这个ALT按键好像不能被检测。。
  1. loop do
  2.   p Input.press?(:ALT) # 总是false
  3.   Input.update
  4. end
复制代码


点评

Alt和F10确实是系统按键,这里没法判断,顺便文档里的press和press_key也需要更新了。  发表于 2020-3-20 11:18
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
692
在线时间
68 小时
注册时间
2012-5-24
帖子
37
242
发表于 2020-3-20 23:15:26 | 只看该作者
改动坐标直接影响到alpha,实在猜不透,大佬能不能多说一些呢?
这次只有一个viewport了,显示一张纯白满alpha、满大小的图,直接反映了alpha在某些位置上的奇特变化。


代码当中,坐标改变部分依然是呈现简单的波纹,而颜色方面专门用红、蓝指示了改变的alpha
PS_OUTPUT myPS(float4 color : COLOR0, float2 texcoord : TEXCOORD0)
{
    float dx = texcoord.x - 0.5;
    float dy = texcoord.y - 0.5;
    float p = sqrt(dx*dx+dy*dy);
    p = 1 + (0.5+0.5*sin(8.0*PI*(p))) / 16.0 / p;
    dx *= p;
    dy *= p;
    texcoord.x = 0.5 + dx;
    texcoord.y = 0.5 + dy;
    float4 res = tex2D(spriteSampler, texcoord);
    if (res.a < 1.0)
    {
      res.r = 1.0-res.a;
      res.g = 0.0;
      res.b = res.a;
      res.a = 1.0;
    }
    return GetOutput(res);
}
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5311
在线时间
1131 小时
注册时间
2011-12-18
帖子
1270
243
发表于 2020-3-21 02:04:56 | 只看该作者
感謝更新 讚嘆更新
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
帖子
1279

开拓者

244
 楼主| 发表于 2020-3-21 07:32:56 | 只看该作者
dieforlife 发表于 2020-3-20 23:15
改动坐标直接影响到alpha,实在猜不透,大佬能不能多说一些呢?
这次只有一个viewport了,显示一张纯白满al ...

你的pass的写法是怎样的?可能和pass的合成方式也有关

点评

像上次234楼发的一样,没有改动。如果改成只剩一条PixelShader= ,依然能得到同样图案。  发表于 2020-3-21 09:13
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
帖子
1279

开拓者

245
 楼主| 发表于 2020-3-21 13:40:04 | 只看该作者
本帖最后由 ⑨姐姐 于 2020-3-21 13:41 编辑
dieforlife 发表于 2020-3-20 23:15
改动坐标直接影响到alpha,实在猜不透,大佬能不能多说一些呢?
这次只有一个viewport了,显示一张纯白满al ...


我测试了一下,好像和你不太一样



你应该不是在虚拟机测试的吧,有些虚拟机支持shader很怪

点评

找了别人用自己的win7测试,也会出现和我一样的图  发表于 2020-3-21 17:55
就是普通的64位win10家庭版直接运行,gtx1650最新驱动,DX12  发表于 2020-3-21 17:52
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
692
在线时间
68 小时
注册时间
2012-5-24
帖子
37
246
发表于 2020-3-21 18:04:48 | 只看该作者
也有人用win10测出了更加剧烈的爆炸,像这样

点评

可以的话发个工程给我试试吧  发表于 2020-3-21 18:18
确认是装了June2010的DX9版本么?  发表于 2020-3-21 18:17
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
692
在线时间
68 小时
注册时间
2012-5-24
帖子
37
247
发表于 2020-3-21 19:11:38 | 只看该作者
这是我的工程。DX的具体信息不知道从哪看
链接:https://pan.baidu.com/s/1YoVyl0vFRslHMc_0WobilA
提取码:pe1l
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
28
星屑
10170
在线时间
4673 小时
注册时间
2011-8-22
帖子
1279

开拓者

248
 楼主| 发表于 2020-3-21 20:08:48 | 只看该作者
dieforlife 发表于 2020-3-21 19:11
这是我的工程。DX的具体信息不知道从哪看
链接:https://pan.baidu.com/s/1YoVyl0vFRslHMc_0WobilA
提取码 ...


我试了一下,把 / p 改成 / (p+0.001) 可以解决问题。可能是除0错误产生了一系列衍生问题吧……
https://stackoverflow.com/questi ... de-by-0-in-a-shader
根据这里的说法,都是未定义操作,发生什么都有可能(
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
692
在线时间
68 小时
注册时间
2012-5-24
帖子
37
249
发表于 2020-3-22 10:08:52 | 只看该作者
哦哦,好华点,谢谢!
看起来和之前的事没有关系啊……只要下层viewport.color的aplpha>0,就要露出来,无关于sprite存在。等于0则完全正常,之前说错了。同样,用空的pass不改变效果。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
692
在线时间
68 小时
注册时间
2012-5-24
帖子
37
250
发表于 2020-3-22 11:21:25 | 只看该作者
啊……我改成p+0.001或者用 if 改变0,都是没有用的。
并且,我测试了固定的数据,当放大率为1.1924时,出现了异常

放大率为1.1925时,全部都有了alpha改变

放大率为1.5时,改变得很多

代码是这样:
  PS_OUTPUT myPS(float4 color : COLOR0, float2 texcoord : TEXCOORD0)
  {
      float dx = texcoord.x - 0.5;
      float dy = texcoord.y - 0.5;
      dx *= 1.1925;
      dy *= 1.1925;
      texcoord.x = 0.5 + dx;
      texcoord.y = 0.5 + dy;
      float4 res = tex2D(spriteSampler, texcoord);
      if (res.a < 1.0)
      {
        res.r = 1.0-res.a;
        res.g = 0.0;
        res.b = res.a;
        res.a = 1.0;
      }
      return GetOutput(res);
  }
pass是空的。
如果把dx*=或者dy*=单独注释掉,都能得到正常的白色。

点评

找不出原因,推测可能是dx的bug……  发表于 2020-3-22 19:04
不对,新的里面没p了,我再看看  发表于 2020-3-22 12:23
有可能是溢出问题?除以p这种操作当p小的时候容易溢出  发表于 2020-3-22 12:22
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 20:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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