首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
CUDA
CUDA高性能计算讨论
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
怎样利用GPU做插值运算
加为好友
发送私信
在线聊天
jj456
英雄会会务组
等级:
可用分等级:
乞丐
总技术分:
0
总技术分排名:
354156
结帖率:
0.00%
发表于:
2008-03-09 16:26:09
楼主
比如说2张图,image1,image2
分别glTexImage2D之后。
对于其中的fragment 部分进行编程:
struct C3E3f_Output {
5 float4 color : COLOR;
6 };
7
8 C3E3f_Output C3E3f_texture(float2 texCoord : TEXCOORD0,
9 uniform sampler2D decal : TEX0)
10 {
11 C3E3f_Output OUT;
12 OUT.color = lerp(tex2D(decal,texCoord),tex2D(decal,texCoord),0.5);
13 return OUT;
15 }
两者相当于做了一次alpha blending,这样是比较容易的。
我现在问题是:如果我希望将第一幅图的第一行放到我结果的第一行,第2副图的第一行为我结果图的第2行,第1副图的第2行为结果图的第3行……,这样交叉放置的话,该怎么做。
传入进来的texCoord 参数是个float型的,貌似不能进行奇偶判断。这样的话,我最终结果图就将比原来的图要大2倍了。
一直没有找到比较好的方法。
望各位指点下。
thanks
问题点数:
20
回复次数:
5
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
coy_zhangce
Coy
等级:
可用分等级:
长工
总技术分:
42
总技术分排名:
147828
发表于:
2008-03-21 11:09:08
1
楼 得分:
0
下面的是一个基于HLSL的解决方法。不是基于CUDA的。
第一:首先把两张图画到一张RenderTarget上去,如果原图是512×512的,那么RenderTarget需要是1024×512的。新图上半部分是原图1,下半部分是原图2.
第二:自己造一个1024×1的纹理NewTex。每个像素用一个通道表示偏移量。如第一个点没有偏移量,第二个点有1/1024的偏移量(就是指把这行画到第3行),第三个点有-1/1024的偏移量(就是指把这行画到第2行)。
余下的是什么你自己想吧。
第三:用NewTex过滤一次原来的纹理,texCoord.x = tex2D(NewTex,texCoord).x+texCoord.x; 然后再用texCoord查找就可以了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
szmuma
天使在流泪/苏州
等级:
可用分等级:
乞丐
总技术分:
647
总技术分排名:
29151
发表于:
2008-03-23 17:22:58
2
楼 得分:
0
支持一下
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
qin_y_j
我是谁
等级:
可用分等级:
中农
总技术分:
360
总技术分排名:
44324
发表于:
2009-02-03 14:28:46
3
楼 得分:
0
用CUDA会方便很多
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
sicanier
古老阳光
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
355090
发表于:
2009-06-23 20:28:17
4
楼 得分:
0
非常想学学
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
darkstorm2111203
樟树
等级:
可用分等级:
富农
总技术分:
418
总技术分排名:
40035
发表于:
2009-06-24 12:12:52
5
楼 得分:
0
可以用CUDA 纹理存储器的线性过滤模式实现
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
abc推荐给好友