You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio中使用Raylib运行Shader时出现白屏问题

排查Raylib白屏问题的实用步骤

1. 先验证最基础的Raylib运行逻辑

先跑一段极简代码,排除项目配置或环境的核心问题:

#include "raylib.h"

int main() {
    InitWindow(800, 600, "Raylib Test");
    SetTargetFPS(60);

    // 检查窗口初始化是否成功
    if (!IsWindowReady()) return 1;

    while (!WindowShouldClose()) {
        BeginDrawing();
            ClearBackground(RED); // 用红色背景替代默认白色,便于直观判断
            DrawText("Test Text", 100, 100, 24, WHITE);
        EndDrawing();
    }

    CloseWindow();
    return 0;
}
  • 如果这段代码还是白屏,说明问题和Shader无关,核心是Raylib的环境配置出错。
  • 若能正常显示红色背景和文字,再回到Shader相关代码排查。

2. 检查vcpkg与VS的集成正确性

  • 确认项目配置为x64 Debug/Release,和你安装的raylib:x64-windows完全匹配,别误选x86架构。
  • 核对项目属性:
    • C/C++ -> 常规 -> 附加包含目录:确保包含vcpkg自动配置的raylib头文件路径。
    • 链接器 -> 输入 -> 附加依赖项:Debug模式要对应raylibd.lib,Release模式对应raylib.lib。
    • 链接器 -> 系统 -> 子系统:必须设置为Windows (/SUBSYSTEM:WINDOWS),选Console会导致窗口渲染异常。

3. Shader相关的细节排查(基础代码正常时)

  • 确认Shader文件路径正确:用printf("%s\n", GetWorkingDirectory());打印当前工作目录,确保base.vs和output.fs在该目录下,或直接用绝对路径加载。
  • 强制检查Shader编译错误:加载后立刻验证并打印错误信息:
Shader shader = LoadShader("base.vs", "output.fs");
if (!IsShaderReady()) {
    TraceLog(LOG_ERROR, "Shader Compile Error: %s", GetShaderErrorMessage(shader));
    return 1;
}
  • 匹配GLSL版本:Raylib默认依赖OpenGL 3.3,Shader开头必须声明对应版本,比如顶点着色器开头加#version 330 core,片段着色器同理。

4. 其他易忽略的点

  • 关闭控制台的快速编辑模式:右键控制台标题栏 -> 属性 -> 取消勾选「快速编辑模式」,该模式会暂停程序运行导致白屏。
  • 确认显卡支持OpenGL 3.3+:用TraceLog(LOG_INFO, "OpenGL Version: %s", GetGraphicsDeviceInfo().openglVersion);打印当前显卡支持的版本,低于3.3会导致渲染失败。

内容的提问来源于stack exchange,提问作者Tanmay Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 11:34:53