XNA:当前顶点声明不包括当前顶点着色器所需的所有元素。 Normal0 缺失

2024-03-01

嘿,我遇到了一点麻烦。我使用 xna 已经有一段时间了,但我对 3D 完全陌生。我正在逐字跟踪 msdn 网站上 winformsgraphicsdevice 示例中的代码。它有一个可以在屏幕上绘制一个原始三角形的控件。就这么简单,但我在这一行遇到了一个例外:

GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleList, vertices, 0, 1);

其中说:

"The current vertex declaration does not include all the elements required by the current vertex shader. Normal0 is missing."

我假设这与我的VertexPositionColor多变的,vertices。该代码在这里:

vertices = new VertexPositionColor[3];
vertices[0] = new VertexPositionColor(new Vector3(-1, -1, 0), Color.Black);
vertices[1] = new VertexPositionColor(new Vector3( 1, -1, 0), Color.Black);
vertices[2] = new VertexPositionColor(new Vector3(0, 1, 0), Color.Black);

您的顶点着色器需要normal值(用于照明计算)但是VertexPositionColorstruct 没有它。

您必须创建一个结构来存储顶点位置、颜色和法线数据,因为它不是 XNA 上的预构建类型。

您可以在此处了解如何创建它:http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_lighting.php http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_lighting.php

在那里他创建了一个名为的结构VertexPositionColorNormal,用它代替VertexPositionColor您当前正在使用的。

如果您不需要任何照明并且不使用BasicEffect,只需从您正在使用的技术中删除照明变量/计算即可。 如果您正在使用BasicEffect尝试设置LightingEnabled and TextureEnabled属性为 false。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XNA:当前顶点声明不包括当前顶点着色器所需的所有元素。 Normal0 缺失 的相关文章

随机推荐

  • 尝试运行 Strapi 会出现模块解析错误

    我正在尝试通过 Ubuntu 20 04 上的 npm 使用 npm rundevelop 运行一个 Strapi 项目 该代码来自我的一个小组项目 没有其他人遇到这些问题 Error cache plugins strapi plugin
  • 带有 goto 命令的 Windows 批处理文件不起作用

    我对 GOTO 命令和附属标签有疑问 事实 给定文件夹中的一堆文件 它们是日志错误 我需要打开它们并检查它们是否包含特定字符串 如果是 则从文件名中删除一些字符 最后一次出现 之后的所有字符 包括其本身 并执行其他操作 为了切断字符 我以循
  • F# 缺少类型约束

    在以下代码中 请注意 get Zero 的类型约束 type Wrapper lt t gt Data t let compute lt t when t static member get Zero unit gt t and t sta
  • nodejs Route.get() 需要回调函数但得到一个 [object String]

    我开始使用带有express的nodejs进行编码 所以我在我的文件 test js 中执行了此操作 该文件位于我的文件夹中 const express require express const router new express Ro
  • 每组查询的前 3 个值 MS Access

    我是 MS Access 的新手 我正在尝试进行一个查询 该查询将根据分数提取 3 个不同类别中的前 3 名人员 即期望的结果是 Child s name Membership Type Total Points Jon Snow Seni
  • 无法在特定 div 上滚动来触发 jquery 函数

    简短版本 这有效 document on click Container function 这不会 document on scroll Container function 长版 很抱歉 发布代码片段是不可行的 因为它是一个复杂的类似应用
  • 类中的部分评估类型

    这是我提出的问题的具体版本here https stackoverflow com questions 60072003 reordering type parameters in haskell 我有一个算法 可以产生一些输出 并且可以产
  • 使用鼠标选择要捕获的区域

    我正在制作一个基于Java的屏幕截图应用程序 当您按下键盘上的组合键时 我想这样做这个视频 http www youtube com watch v bJ6VbbpQ0XY发生在您在屏幕上选择区域的位置 并且它会拍摄所选区域的屏幕截图 如何
  • Google 搜索查询中参数的含义? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有关于 Google 查询中的参数含义的资源 有没有分析过 Google 搜索页面的内部运作方式 例子是 http www googl
  • 如何使用eclipse进行C#开发? [复制]

    这个问题在这里已经有答案了 可以使用eclipse进行C 开发吗 如果可以的话 该怎么办呢 您最喜欢的组合是什么 虽然我见过一些半成品的插件 但我不相信有任何东西可以做到这一点close到 Eclipse 中的 Java 工具 如果您使用的
  • 使用 jquery-1.4.1.js 访问被拒绝

    我正在使用 VS2010 和 jquery 1 4 1 js 版本 我尝试访问 WCF 服务 但出现奇怪的错误 访问被拒绝 in jquery 1 4 1 js在页码处4982 jquery 1 4 1 js Open the socket
  • 清除控制台缓冲区

    我正在 VS2008 中编写一个示例控制台应用程序 现在我有一个Console WriteLine 在屏幕上显示输出的方法 然后有Console ReadKey 等待用户结束应用程序 If I press Enter while the C
  • 如何从服务类调用组件方法 - Angular

    我试图从服务类调用组件方法 但收到类似 错误类型错误 无法读取未定义的属性 测试 的错误 但是我遇到了类似的问题 但主要解释了组件到组件的调用 所以我没有正确理解 例子 测试组件 ts Component selector componen
  • 考虑到指令具有不同的长度,CPU 如何知道下一条指令应该读取多少字节?

    所以我正在读一篇论文 其中他们说静态反汇编二进制代码是不可判定的 因为一系列字节可以用多种可能的方式表示 如图所示 其 x86 所以我的问题是 那么CPU是如何执行这个的呢 例如 在图中 当我们到达 C3 之后时 它如何知道下一条指令应该读
  • 如何动态覆盖__setitem__? (无子类)

    我无法覆盖某些内置函数 例如 setitem Python2 7 虽然我测试的之前版本也出现同样的情况 虽然我知道这很容易通过子类化来完成 但这不是我想要的 我需要能够动态地重写这些方法 显然 当我的班级是 的子类时object 被重写的方
  • iOS Swift:将打印和调试打印写入文件

    晚上 是否可以将所有打印和调试打印保存在文件中 我想要记录我的应用程序所做的事情 即使它不是从 Xcode 启动的 我正在考虑重写 print 和 debugPrint 方法并将输入写入文件 Thanks Swift 标准库中有以下方法 f
  • ConvergenceWarning:lbfgs 未能收敛(状态 = 1):停止:总数迭代次数达到限制

    我有一个由数字和分类数据组成的数据集 我想根据患者的医疗特征预测患者的不良结果 我为我的数据集定义了一个预测管道 如下所示 X dataset drop columns target y dataset target define cate
  • 在空行上将文本文件拆分为字符串

    我想读取本地的一个txt文件 读取这个文件中的文本 之后 我想将整个文本拆分为字符串 如下例所示 例子 可以说文件包含 abcdef ghijkl aededd ededed ededfe efefeef efefeff 我想将此文本拆分为
  • Mingw64-w64 属性(格式)和 标头

    交叉编译时 我在让 cinttypes 在 mingw64 w64 上正常工作时遇到严重问题 我已经将其简化为在 docker 中运行的最小示例 inttypes test cpp include
  • XNA:当前顶点声明不包括当前顶点着色器所需的所有元素。 Normal0 缺失

    嘿 我遇到了一点麻烦 我使用 xna 已经有一段时间了 但我对 3D 完全陌生 我正在逐字跟踪 msdn 网站上 winformsgraphicsdevice 示例中的代码 它有一个可以在屏幕上绘制一个原始三角形的控件 就这么简单 但我在这