游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2124|回复: 7

引擎完成对视频纹理的无缝支持

[复制链接]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-30 00:04:00 | 显示全部楼层 |阅读模式
视频纹理的功能其实早就做了。只是怎么都不能很好的融合到引擎中。今天走在路上灵机一动: 做成插件,用现在引擎的可扩展的纹理管理器和插件对象创建机制。重新派生一种纹理。
不改变现有的引擎结构,仅仅加了一个插件。同时还可以支持其他跨平台的解码器(无非是再写一个插件)
经过一晚上的工作,现在终于搞定了.使用视频纹理的时候 和使用其它的纹理是完全一样.加载的方法也是一样的.只要给出文件名,自动能判断是不是视频纹理.应该说比较方便了.

代码已经提交到SVN服务器中
http://gforge.osdn.net.cn/projects/xreal3d/
sf_200611300354.jpg

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-11-30 01:57:00 | 显示全部楼层

Re: 引擎完成对视频纹理的无缝支持

5层纹理叠加,其中两层是视频。
texture  stage 3 是摄像头的视频.
texture  stage 4 是一个辛晓琪的MV

发个恶心一点的图
/*
&ltaramater>
   <sampler name="NormalTexture"  stage = "0" manager="default" />
   <sampler name="reflectTex"     stage = "1" manager="default" file="reflect.dds" address="edge"/>
   <sampler name="underWaterTex"  stage = "2" manager="default" file="underWater.tga" />
   <sampler name="texCamera"      stage = "3" manager="default" file="Camera" />
   <sampler name="texVideo"       stage = "4" manager="default" file="videoTexture.mpeg" />
</Paramater>
*/


uniform sampler2D   NormalTexture;
uniform sampler2D   underWaterTex;
uniform sampler2D   texCamera;
uniform sampler2D   texVideo;
uniform samplerCube reflectTex;
void main( void )
{
   vec2 texCoord  = gl_TexCoord[0].xy;
   vec3 viewDir   = vec3(0.5,0.5,0.25) - vec3(texCoord.x, texCoord.y  , 0.0) ;
   vec3 fNormal   = normalize( vec3(0.1, 0.1 , 1.0) * texture2D( NormalTexture, texCoord ).xyz );
   
   
   vec3 nViewDir = normalize(viewDir.xyz);
   float cos_vn = dot(nViewDir , fNormal);
   vec3 refDir = normalize(2.0 * fNormal * cos_vn - nViewDir);

   gl_FragColor = 0.4 * vec4(texture2D( underWaterTex, texCoord - 0.1 * fNormal.yx).xyz,1.0) +
                  0.8 * vec4(texture2D( texCamera, texCoord - 0.1 * fNormal.xy).xyz,1.0) +
  0.4 * vec4(texture2D( texVideo , texCoord + 0.1 * fNormal.yx).xyz,1.0) +
                  0.6 *  vec4(textureCube( reflectTex , refDir.xzy ).xyz,1.0) ;   

}

sf_200611301573.jpg

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-30 12:52:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

我的AVITexture就是从Texture中派生的
猫狗2的主界面的背景就是一个循环播放的bink动画

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-11-30 13:07:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

bink动画怎么播放?有sdk?

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2006-11-30 16:49:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

考,你有涨了几斤膘。
马马,你有bink的sdk给我,就是别给那头猪。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-30 17:02:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

当然有sdk,rad game tools都是收钱的
不过我听狗狗的,不给涨了几斤膘的猪,等你瘦下来了再说>_<o

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-11-30 17:43:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

我有自己做一套Bink SDK,只需要调Bink的DLL即可。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-12-1 12:39:00 | 显示全部楼层

Re:引擎完成对视频纹理的无缝支持

狗狗现在已经不用猪的播放器看A片,跑去做自动麻将桌了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 00:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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