为什么 D3DXCreateCylinder 制作的网格着色/材质不起作用?

2023-12-24

This question is in continuation of "why D3DXCreateCylinder is not creating a cylinder? https://stackoverflow.com/questions/5583646/why-d3dxcreatecylinder-is-not-creating-a-cylinder". I m able to draw the cylinder but it is only drawing it as full white.

代码如下

void draw_Cylinder(void){

    D3DXMATRIX rot_matrix;
    D3DXMATRIX trans_matrix;
    D3DXMATRIX world_matrix;
    static float rot_triangle=0.0f;
    static float rot_triangle2=0.0f;


    D3DXMatrixRotationY(&rot_matrix,rot_triangle);  //Rotate the cylinder
    D3DXMatrixRotationX(&rot_matrix,rot_triangle2);  //Rotate the cylinder
    D3DXMatrixTranslation(&trans_matrix,2.0f,0,20.0f); //Shift it 2 units to the left
    D3DXMatrixMultiply(&world_matrix,&rot_matrix,&trans_matrix);



    D3DMATERIAL9  material;// = new D3DMATERIAL9();



    ZeroMemory( &material, sizeof(D3DMATERIAL9) );

    // Set the RGBA for diffuse reflection.
    material.Diffuse.r = 0.5f;
    material.Diffuse.g = 0.0f;
    material.Diffuse.b = 0.5f;
    material.Diffuse.a = 1.0f;

    // Set the RGBA for ambient reflection.
    material.Ambient.r = 0.5f;
    material.Ambient.g = 0.0f;
    material.Ambient.b = 0.5f;
    material.Ambient.a = 1.0f;

    // Set the color and sharpness of specular highlights.
    material.Specular.r = 1.0f;
    material.Specular.g = 1.0f;
    material.Specular.b = 1.0f;
    material.Specular.a = 1.0f;
    material.Power = 2.0f;

    // Set the RGBA for emissive color.
    material.Emissive.r = 0.0f;
    material.Emissive.g = 0.0f;
    material.Emissive.b = 0.0f;
    material.Emissive.a = 0.0f;


    g_d3d_device->SetMaterial(&material);

    g_d3d_device->SetTexture(0,NULL);

    g_d3d_device->SetTransform(D3DTS_WORLD,&world_matrix);
    m_ppMeshCylinder->DrawSubset(0);
    ////Render from our Vertex Buffer
    //g_d3d_device->DrawPrimitive(D3DPT_TRIANGLELIST, //PrimitiveType
    //                            0,                  //StartVertex
    //                            g_pyramid_count);   //PrimitiveCount

    rot_triangle+=0.0007f;
    if(rot_triangle > D3DX_PI*2)
    {  
        rot_triangle-=D3DX_PI*2;
    }

    rot_triangle2+=0.0007f;
    if(rot_triangle2 > D3DX_PI*2)
    {  
        rot_triangle2-=D3DX_PI*2;
    }
}

或下载项目。 我在这里吸引了我的代码”” 我想用 3D 阴影来绘制它,如果默认渲染的话,通常任何 3D 网格都会有这种阴影。 我对材料不太了解。或者是显卡的问题(我只是想:D)。

另外我在哪里可以获得abt的信息和样品SetRenderState


Try

g_d3d_device->SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );

目前,它默认使用“颜色 1”,这是 2 种可能的顶点颜色中的第一种。

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

为什么 D3DXCreateCylinder 制作的网格着色/材质不起作用? 的相关文章

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 为什么 std::allocator 在 C++17 中丢失成员类型/函数?

    一边看着std 分配器 http en cppreference com w cpp memory allocator 我看到成员 value type pointer const pointer reference const refer
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens

随机推荐

  • 如何为“扩展类”编写有意义的测试?

    编写有意义的测试的正确方法是什么扩展一个类 https dart dev guides language language tour extending a class与super关键词 class FooBase
  • Android 相机 takePicture 使用预览小缓冲区

    我正在使用 OPENCV 开发一个项目 我在 onCameraFrame 上有一些进程 当它显示预览时 用户可以拍照 但在某些设备中 我在调用 takePicture 方法后出现错误 我应该怎么办 E Camera JNI 11783 Ma
  • 我如何知道短信是否已到达 Twilio 中的目的地

    我正在开发一个网络应用程序 并且我正在使用 twilio 网关发送短信 我需要在我的页面上显示短信的状态 如果短信已发送 那么它将显示已发送 否则它将显示待处理 所以请告诉我如何知道消息是否已送达 以下是示例代码 public class
  • 如何提供一个后备程序集而不是无法加载的程序集?

    在运行时 如果引用的程序集无法加载 例如 强名称验证失败 因为它是测试签名的 有没有办法从另一个真实签名的路径提供替换程序集 我尝试订阅 AppDomain CurrentDomain AssemblyResolve 但它没有被触发 因为
  • 如何在Python 3中将二进制文件转换为列表中的文本文件?

    我正在尝试编写一个 Python 程序 该程序从 LabView 中获取多个二进制文件 从 tkinter 对话框中选择并打开 并将它们转换为可读的文本文件 或 csv 文件 理想情况下 但是 我在二进制到文本转换方面遇到了麻烦 我尝试查看
  • 如何快速比较颜色

    我正在尝试比较颜色 但无法使用isEqual方法 因为我正在尝试比较背景的颜色UICollectionViewCell 在这种情况下比较颜色的正确方法是什么 if cell layer backgroundColor UIColor red
  • 显示旋转轮图像直到整个页面加载

    我正在使用下面的代码 在布局页面的 body 标签内 div img src images user profile ajax loading gif alt Loading div 在起始页中 css div loading height
  • 如何使用 C++ 更改、替换或删除文本文件中的行?

    如何使用 C 更改 替换或删除文本文件中的行 我有一个文本文件 其中包含用户的登录信息 用户名和密码 例如 file Jimmy jim1236 tom tommy545 现在我怎样才能编写一个程序 允许用户在登录系统后更改自己的密码呢 我
  • 使用 csv.reader 的制表符分隔文件未分隔我期望的位置

    我正在尝试使用 Python 循环遍历选举结果的制表符分隔文件 以下代码不起作用 但是当我使用具有相同结果的本地文件 注释掉的行 时 它确实按预期工作 我唯一能想到的是我需要传递网址的一些标头或内容类型 但我无法弄清楚 为什么会发生这种情况
  • 获取 Google BigQuery 中给定月份的总天数?

    我可以创造用户定义函数 https cloud google com bigquery user defined functions并计算给定月份的总天数 有没有直接的方法来获取给定日期的给定月份中的总天数 eg select date t
  • 使用 PIL 时释放内存

    我正在使用 PIL Python 图像库 编辑图像 每一步 转换 旋转 调整大小 都会创建更多图像 文档摘录 返回旋转给定度数的图像的副本 所以我想释放内存 你知道下面的做法是否节省内存 import PIL Image image PIL
  • Socket.io 在两个 Node.js 应用程序之间触发事件?

    我有两台服务器 一台用于后端应用程序 另一台为前端服务 它们是抽象的 但共享相同的数据库 我需要两者使用 socket io 在彼此之间进行实时事件通信 前端 serves a front end website var appPort 9
  • 如何在列上添加隐藏属性?

    创建时态表时 我们需要定义开始和结束日期时间列 这可以是hidden 不可见于SELECT or INSERT without columns 我想再添加一列 其中包含有关已提交更改的用户的信息 问题是 我收到以下错误 Msg 13735
  • 避免在 selenium 调用期间打开远程服务器上的浏览器

    我使用 webdriver 编写了一个 Selenium 应用程序 我希望在远程服务器上运行它 当我通过 putty 以及 Xming 登录服务器来做到这一点时 selenium 会尝试仅在服务器上打开浏览器并通过外部显示器加载页面 然而
  • 使用 lucene 提取 tf-idf 向量

    我已经使用 lucene 索引了一组文档 我还为每个文档内容存储了 DocumentTermVector 我编写了一个程序并获取每个文档的词频向量 但是如何获取每个文档的 tf idf 向量 这是我的代码 用于输出每个文档中的术语频率 Di
  • 传递箭头函数与传递函数

    假设我有一个函数 handleChange e gt this setState e target id e target value 以下内容有什么区别 1
  • 在 JavaFX 中实现标签栏

    答案示范 5月29日凌晨3点10分回答 10 7 2016 you can find the code on GitHub https github com goxr3plus JavaFX TagsBar 回答前的实际问题 5月22日19
  • 下载图像,其src属性(base64)

    通过 AJAX 我收到一个 base64 格式的图像 我将其附加到 img 标签的 src 属性 我想提供一个下载该图像的选项 是否可以获取 src 属性的数据并下载它 这是因为我无法再次从服务器下载图像 谢谢 只需设置window loc
  • 如何将 FILE** 变量设置为标准输出?

    我的生产代码的模型 version 1 include
  • 为什么 D3DXCreateCylinder 制作的网格着色/材质不起作用?

    This question is in continuation of why D3DXCreateCylinder is not creating a cylinder https stackoverflow com questions