为什么贴图放大不能满窗口?

lyzcom 2003-10-17 05:36:18
以下是部分关键代码:

struct Vertex
{
float x, y, z, rhw;
unsigned long color;
float u, v;
} ;
#define FVF (D3DFVF_DIFFUSE | D3DFVF_XYZRHW | D3DFVF_TEX1)

然后,设置正交平等投影:
D3DXMatrixOrthoLH(&mat, 800, 600, 0.0, 1.0);

然后,用Vertex定义四个顶点:
Vertex vertices[4] = {
{ 0, 0, 1, 0xFFFFFFFF, 0, 0 },
{ 800, 0, 1, 0xFFFFFFFF, 1, 0 },
{ 800, 600, 1, 0xFFFFFFFF, 1, 1 },
{ 0, 600, 1, 0xFFFFFFFF, 0, 1 } };

接下来是大循环的Render:

d3ddevice->SetTexture(0, texture);
d3ddevice->SetTextureStageState(....);
d3ddevice->DrawPrimitiveUp(.....);


texture是一张256*256的纹理图片,载入在里面的图像是A8R8G8B8的256*256位图,是填满了整张纹理的。结果,画出来的纹理却没有占满整个窗口。

这很奇怪,因为顶点在设置的时候,分别是应该铺在窗口的四个角上,应该会放大并填满整个窗口的。但事实上其右边和下边总是差100多个像素的宽度没有被填上。

请问这是为什么?
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyzcom 2003-10-17
  • 打赏
  • 举报
回复
噢,多谢各位的参与,问题找到了。原来是因为我怕显卡不支持任何尺寸的贴图,因此对纹理大小做了限制。于是,在计算uv坐标的时候出了问题。老是不能顶到头。
tomb4 2003-10-17
  • 打赏
  • 举报
回复
帮你UP
MAPLE到H3D取了啊,GXGX:)
lyzcom 2003-10-17
  • 打赏
  • 举报
回复
不是,Viewport我是做全局设置了的。就是在初始化完成之后设置的,但是没有在每循环中设置,而且,循环中也没有改变Viewport。

所以,我实在是想不通哪里出现了问题。还有没有能给些意见的。
maplexp 2003-10-17
  • 打赏
  • 举报
回复
是不是Viewport设置的问题
ttmmdd 2003-10-17
  • 打赏
  • 举报
回复
差100多个像素?
如果是差10多个像素的话可能是WINDOW边界的问题.
你代码似乎没问题.
内置的渲染器,HD,URP和轻量级SRP支持 NEW!HDRP矢量位移样本 新!URP和HDRP的镶嵌选项 新!URP的半透明和透射选项 新!新的“开始屏幕”窗口 NEW!轻松的图形共享和画布截图按钮 新功能!SRP包自动导入程序 NEW!与Unity 2019的兼容性 新!支持后期处理堆栈着色器 新功能!与Unity插件中的Substance 兼容 !支持自定义渲染纹理 新增!同时支持高清,URP和轻量级SRP 。多遍模板 !Xbox One / PS4 / Switch支持 新增!地形支持 NEW! 着色器模板 •通用PBR /未照明SRP •通用2D点亮/未照明SRP •HD点亮/未照明/头发/织物/贴花SRP •轻量PBR /未照明SRP •自定义RT初始化/更新 •后处理效果,包括后处理堆栈 • Alpha混合颗粒 •雪碧 •熄灭 •不亮光照贴图 •UI 新工具 •后处理堆栈工具 新样本 •HDRP向量位移 •独立于比例的图块 • Raphael Ernaelsten的体积像素化 •SRP HD全贴图 •马赛克效果 •未使用光照贴图 新模板 •通用PBR /未照明 •HD点亮/ 未照明/毛发/织物 •后处理堆栈 •未照明光图 新节点 •反投影矩阵 •反视图投影矩阵 •HD发射 •Voronoi •渐变 •渐变样本 新增的着色器功能 •反勒普 •随机范围 •SRP附加光 •流量 •旋转 •高处法线 •噪声正弦波 •锯齿波 •方波 •三角波 •棋盘格 •椭圆 •多边形 •矩形 •圆角矩形 最新改进 •添加了专门用于新通用渲染管线的 模板•添加了与Unity HDRP着色器检查器兼容的新HD Lit模板 •无限循环检测现在更快,减少了连接大型图形上的节点时的命中率。 •改进了节点预览渲染刷新行为 •创建了新的标记系统以改善节点搜索 •只需单击“屏幕截图”按钮即可获取整个画布的屏幕截图 •通过“共享”按钮轻松共享图形的选定部分 •添加了新的后处理堆栈工具它会使用给定着色器的PPS渲染器和设置生成cs脚本。 •Amplify Shader Editor通过高达v7.2.x的模板支持HD,Lightweight和Universal RP。 •Legacy HD和Lightweight SRP v3.xx / v4.xx / v5.xx模板也通过Legacy软件包提供。 •通过自定义RT模板支持在Unity 2017及更高版本上使用自定义渲染纹理。 •现在,也可以通过Unity插件中的Substance,在Unity 2018及更高版本的ASE画布上使用此Substance。 •现在在Unity 2018.2及更高版本上可以访问8个UV通道。 •可以通过键盘方向键平移和缩放ASE画布摄像机。 •支持HD PBR SRP模板中的材料类型。 •支持将Specular工作流程集成到Lightweight PBR SRP模板中。 •现在可以直接在模板上添加自定义选项。 了解更多: 在此处放大Wiki 讨论:Unity论坛线程 着色器示例:完整列表 编辑器在将来的更新中将继续得到改进,当前正在开发许多功能。 显着功能 •完整的源代码 •支持Xbox One / PS4 / Switch • 自定义节点API • 着色器模板 • 着色器功能 •多窗口支持 •直观,熟悉的节点界面 •广泛的节点库 •实例化支持 •用户贡献的节点和着色器 •不断增加的样本收集
Snipaste是一款免费的桌面截图软件,功能强大,使用方便,支持任何屏幕位置截图,支持窗口截图,支持快捷方式(F1)截图。 Snipaste 基本简介   Snipaste使用很简单,但同时也有一些隐藏的特性,能够让你的工作效率得到进一步的提升。Snipaste 是免费软件,它也很安全,没有广告、不会扫描你的硬盘、更不会上传用户数据,它只做它应该做的事。 功能介绍   1、可以将剪贴板里的文字或者颜色信息转化为图片窗口。   2、可以缩放、旋转这些贴图窗口,或者把它们变成半透明,甚至让鼠标能穿透它们。 使用方法   Snipaste 首先是一个快速截图工具。当它在托盘运行时,我们可以通过两种方式激 活截图工具,分别是:默认快捷键 F1 或单击托盘图标。   截图工具打开之后,它会像 QQ 截图工具一样自动检测窗口及元素,方便快速捕捉单一窗口。但是 Snipaste 的自动检测元素功能却更加精确,它可以捕捉窗口上的一个按钮或者选项,甚至网页上的一张图片或一段文字。 Snipaste   使用截图工具的原因是只想获取屏幕局部的图像。自动检测功能固然方便,但许多时候我们可能会需要一个自定义范围的图像。此时,精确控制截图边缘变得十分重要。   Snipaste 做到了边缘像素级控制。当你拖动外框时,会自动出现放大镜。而点击截图框外的某一点可以迅速调整图框范围。另外,使用键盘的方向键也可以像素级调整图框的位置。 Snipaste
Snipaste是一个简单但强大的截图工具,堪称真正的截图神器!由国外独立开发者花了3年的时间制作而成,用了它小编都想抛弃使用多年的FSC,最有趣的是可以让你将截图贴回到屏幕上!按下F1来开始截图,选择“复制到剪贴板”,再按F2,截图就在桌面置顶显示了。 Snipaste功能介绍 你还可以将剪贴板里的文字或者颜色信息转化为图片窗口。你可以缩放、旋转这些贴图窗口,或者把它们变成半透明,甚至让鼠标能穿透它们! 如果你是程序员、设计师,或者你大部分工作时间都是花在电脑上,我相信你能体会到 Snipaste 给你带来的效率提升。 Snipaste 使用很简单,但同时也有一些隐藏的特性,能够让你的工作效率得到进一步的提升。感兴趣的话,请抽空读一读用户手册。 Snipaste 是免费软件,它也很安全,没有广告、不会扫描你的硬盘、更不会上传用户数据,它只做它应该做的事。 Snipaste使用教程 Snipaste 首先是一个快速截图工具。当它在托盘运行时,我们可以通过两种方式激活截图工具,分别是:默认快捷键 F1 或单击托盘图标。 截图工具打开之后,它会像 QQ 截图工具一样自动检测窗口及元素,方便快速捕捉单一窗口。但是 Snipaste 的自动检测元素功能却更加精确,它可以捕捉窗口上的一个按钮或者选项,甚至网页上的一张图片或一段文字。 使用截图工具的原因是只想获取屏幕局部的图像。自动检测功能固然方便,但许多时候我们可能会需要一个自定义范围的图像。此时,精确控制截图边缘变得十分重要。 Snipaste 做到了边缘像素级控制。当你拖动外框时,会自动出现放大镜。而点击截图框外的某一点可以迅速调整图框范围。另外,使用键盘的方向键也可以像素级调整图框的位置。 Snipaste截图

8,301

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧