问题来源

在研究HLSL时编译一个demo出现了error X3539的问题

DirectX using C++_error X3539:ps1_x is no longer supported...解决方案_HLSL

 

解决方案

将代码中的ps_1_1 改为ps_2_0

PixelShader = compile ps_1_1 PS();

  

或者是在D3DXCompileShaderFromFile函数中将对应的ps_1_1改为ps_2_0

//create pixel shader
ID3DXBuffer* codeBuffer        = 0;
ID3DXBuffer* errorBuffer       = 0;
HRESULT hr = D3DXCompileShaderFromFile("ps.txt",
                                       0,
                                       0,
                                       "PS_Main", // entry point function name
                                       "ps_2_0",  //ps_1_1 is error X3539
                                       D3DXSHADER_DEBUG,
                                       &codeBuffer,
                                       &errorBuffer,
                                       &pixelConstTable);

 

最后渲染出来的结果

DirectX using C++_error X3539:ps1_x is no longer supported...解决方案_HLSL_02

demo源码地址

 

参考资料

DX C++ error X3539_Stackoverflow

 

作者:Zoctopus_Zhang
         
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
    
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
    
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
DirectX using C++_error X3539:ps1_x is no longer supported...解决方案_HLSL_03

您的资助是我最大的动力!
金额随意,欢迎来赏!

DirectX using C++_error X3539:ps1_x is no longer supported...解决方案_d3_04

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

如果,想给予我更多的鼓励,求打

本博客的所有打赏均将用于博主女朋友的化妆品购买以及养肥计划O(∩_∩)O。我是【~不会飞的章鱼~】!

联系或打赏博主【~不会飞的章鱼~】!https://www.cnblogs.com/OctoptusLian/