社区
游戏开发
帖子详情
关于DirectX中的窗口缩放与顶点的位置、纹理拉伸的问题
HengStar
2008-05-09 08:17:38
我写了一个DirectX窗口程序,里面只是简单的用顶点绘制面片,然后给面片贴上纹理,用正交矩阵做2D化渲染,但是我用鼠标改变窗口大小的时候,发现顶点和纹理也随之等比例缩放。
但是我不想要这样的效果,我想实现让窗口拉伸的时候里面的顶点和纹理不会随之改变,而且可以用滚动条控制屏幕显示的位置,请问高手们有什么好的简单点的解决方案吗?希望能详细解释,谢谢~
...全文
684
6
打赏
收藏
关于DirectX中的窗口缩放与顶点的位置、纹理拉伸的问题
我写了一个DirectX窗口程序,里面只是简单的用顶点绘制面片,然后给面片贴上纹理,用正交矩阵做2D化渲染,但是我用鼠标改变窗口大小的时候,发现顶点和纹理也随之等比例缩放。 但是我不想要这样的效果,我想实现让窗口拉伸的时候里面的顶点和纹理不会随之改变,而且可以用滚动条控制屏幕显示的位置,请问高手们有什么好的简单点的解决方案吗?希望能详细解释,谢谢~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
引力场变动源
2008-05-11
打赏
举报
回复
在D3D里面,改变窗体的大小的时候,如果没有重置D3D设备以更改分辨率的话,D3D系统默认是将渲染结果缩放以适合窗口的,顶点的位置其实并没有被改变,谁也没有去移动那些顶点,不是吗?^^
所以如果不想让显示的图像随着窗口的缩放而缩放的话,就要在D3D系统自动缩放之前把渲染结果拿过来自己处理。处理的方法就像我上面说的那样。
这里需要分两个阶段渲染,第一个阶段是把需要的图像渲染到一张纹理上,具体的可以在网上搜索“渲染到纹理”的技术;第二步是上一步渲染得到的纹理显示在屏幕上,方法就是与一个新的面片绑定,通过修改这个面片的纹理坐标,就可以选择显示第一步得到的纹理的哪一部分,而这个正是可以用滚动条控制的^^
HengStar
2008-05-11
打赏
举报
回复
不是很明白楼上说的,可以说具体点吗?我觉得窗口大小改变后渲染部分改变的是顶点的位置,跟纹理似乎没多大关系,因为顶点的位置是相对窗口的位置
引力场变动源
2008-05-11
打赏
举报
回复
窗口模式的DirextX程序,并且要求显示内容不随窗口的变化而变化,是这个意思吗?
我的想法是,先将要显示的内容通过“渲染到纹理”的技术渲染到一张固定大小的纹理上,然后创建一个与窗体等大并且随着窗体的大小变化而变化的2D显示体;然后,当窗体大小改变的时候,计算当前窗体大小和上面说的那个“固定大小的纹理”在尺寸上的比例关系,根据这个比例关系调整2D显示体的纹理坐标值,最后将固定大小的纹理交付给那个2D显示体显示就可以了。
拖动滚动条的时候,也只要根据窗体大小、纹理大小和滚动条位置计算纹理坐标就可以了。
AliasKavin
2008-05-10
打赏
举报
回复
RenderTarget 去看一下`~
HengStar
2008-05-10
打赏
举报
回复
代码比较多,不方便帖上来,只是想知道如何实现这样的效果,给个正确的思路就行了~
aceattacker
2008-05-09
打赏
举报
回复
贴代码上来!
DirectX
纹理
设计源代码
DirectX
纹理
设计源代码,基础设计。可修改代码
DX9
中
的
纹理
贴图
用于学习交流,一个完整的贴图,及放大缩小
DirectX
vc++ 有注释 细节映射 贴图
DirectX
vc++ 有注释 细节映射 贴图
Vertex Blending
<<精通
DirectX
3D 程序与动画设计>>
顶点
混合例子源码,Vertex Blending
direct3d_texture.rar_Talk Talk
a example developed with
directx
talk aoubt texture mainly in the environment of vc.net
游戏开发
8,325
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章