图形编程 - reading list

本文推荐了几本经典的计算机图形学书籍,包括《计算机图形学(OpenGL版)》、《3D计算机图形学》和《实时计算机图形学》,并对比了OpenGL与Direct3D的技术特点和发展趋势。

Graphics:

Computer Graphics Using OpenGL,Second Edition

计算机图形学(OpenGL版)

F.S.Hill,JR.

http://www.china-pub.com/computers/common/info.asp?id=15845

        书很厚,有很多例子代码和练习,都是使用OpenGL实现。每章最后有case studies,可以跟着用例编程实现。我感觉本书并没有像作者强调的那么的数学优先,倒是代码为先。

        现在图形的一些绘制以由硬件完成了。程序员需要掌握的已经不是怎样用像素高效绘制椭圆的算法,直接从以OpenGL开始,学习与之有关的图形理论和接口是一个很好的开始。

       本书的彩图黑白的。唉,出版社啊。。。

3D Computer Graphics,Third Edition

3D计算机图形学(原书第3版)

Alan Watt

http://www.china-pub.com/computers/common/info.asp?id=26100

        讲述3d图形学的各方面。比较难读。应该认真看看。

 

Real-Time Rendering,Second Edition

实时计算机图形学(第2版)

Tomes Akenine-Moller,Eric Haines

http://www.china-pub.com/computers/common/info.asp?id=20566

        讲述实时渲染技术,非常好的书。因为找不到电子版,就买了。翻译不像有些人说的那样,感觉挺好。拥有它,你也有了学习方向的指导。作者们维护了一个网站http://www.realtimerendering.com/,里面有各种资源,当然还有一个更详细book recommendation list for real-time computer graphics

        并不是你要做实时渲染,或者是做游戏才需要它。只要你在做图形编程,那就一定要读。

        真贵。如果是在书店买,还真舍不得掏出钱包。我在网上买的,迷迷糊糊也就过去了。

        有一件事情很费解,本书的彩图1和2不见了。好像本该印刷彩图1和2的地方,居中写了一段介绍出版社的话。真是愚蠢。

        缺的不只是彩图1,2,好像4-8也没有。

 

OpenGl:

      SGI经过了一次破产保护加重组;Microsoft又在Windows Vista 上对OpenGl下黑手;加上DirectX本身的快速发展,在Windows平台上,对OpenGl没什么好说的了。

        OpenGl的文档都印成书卖钱了,还被誉为“宝书”。

 

Direct3d:

        Directx 的文档就很好。如果刚开始学的话,直接看文档还是很费力。还有SDK带着一些例子也很好,他们都是基于Dxut写的。Dxut framework 有助于开发人员减少对 windows 平台上细节的一些依赖, 比如创建窗口和Device,处理一些基本的消息。Dxut的源码都在,可以任意修改。(Microsoft 其实给出了不少library的代码, 随着vc安装,crt, mfc, atl的源码都有。在vc下工作,看不到源码的只是win32 api了)。

        ATI和Nvidia的Develope网站上都有很丰富的资源,它们应该能代表图形技术的尖端了。

        http://developer.nvidia.com/page/home.html

        http://ati.amd.com/developer/index.html

        最近的图形编程革命由Directx10掀起。(如果我买新电脑,该买ATI的显卡呢,还是Nvidia的?)

        还有一个网站,也是不可错过的:http://www.gamedev.net/。这里也反映着图形技术上的最新进展。

 

The Microsoft DirectX 9 Programmable Graphics Pipeline

Kris Gray

http://www.amazon.com/Microsoft-DirectX-Programmable-Graphics-Pipeline/dp/0735616531/ref=sr_1_1/103-0554897-6547851?ie=UTF8&s=books&qid=1174744544&sr=1-1

         可以找到电子版(用emule),但是找不到书上的例子源码。

         介绍了 vertex shader 和 pixel shader, 当然还有 HLSL 与 Effect。作者的例子很详细。由于下载不到源码,所以我没试做过一个 :) 。

         本书是以 directx9 为基础的。Directx10 还新加了一个 geometry shader。

 

Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks

Wolfgang F. Engel

 http://www.amazon.com/Direct3D-ShaderX-Vertex-Shader-Tricks/dp/1556220413/ref=sr_1_10/103-0554897-6547851?ie=UTF8&s=books&qid=1174091387&sr=1-10

 

ShaderX2: Introductions and Tutorials with DirectX 9.0

Wolfgang F. Engel

 http://www.amazon.com/ShaderX2-Introductions-Tutorials-DirectX-9-0/dp/155622902X/ref=sr_1_25/103-0554897-6547851?ie=UTF8&s=books&qid=1174091410&sr=1-25

 

ShaderX2: Shader Programming Tips and Tricks with DirectX 9.0

Wolfgang F. Engel

http://www.amazon.com/ShaderX2-Shader-Programming-Tricks-DirectX/dp/1556229887/ref=sr_1_32/103-0554897-6547851?ie=UTF8&s=books&qid=1174091410&sr=1-32

 

ShaderX3: Advanced Rendering with DirectX and OpenGL

Wolfgang F. Engel

http://www.amazon.com/ShaderX3-Advanced-Rendering-DirectX-Shaderx/dp/1584503572/ref=sr_1_4/103-0554897-6547851?ie=UTF8&s=books&qid=1174090929&sr=1-4

 

ShaderX 4 Advanced Rendering Techniques

Wolfgang F. Engel

http://www.amazon.com/ShaderX-Advanced-Rendering-Techniques-Graphics/dp/1584504250/ref=pd_bbs_sr_1/103-0554897-6547851?ie=UTF8&s=books&qid=1174090929&sr=1-1

Shader X5: Advanced Rendering Techniques

Wolfgang F. Engel

http://www.amazon.com/Shader-X5-Advanced-Rendering-Techniques/dp/1584504994/ref=pd_bbs_sr_2/103-0554897-6547851?ie=UTF8&s=books&qid=1174090929&sr=1-2

a1@1:~ $ sudo apt install -y code Reading package lists... Done Building dependency tree... Done Reading state information... Done code:arm64 is already the newest version (1.86.2-1707853305). You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: code:arm64 : Depends: libasound2:arm64 (>= 1.0.17) but it is not installable Depends: libatk-bridge2.0-0:arm64 (>= 2.5.3) but it is not installable Depends: libatk1.0-0:arm64 (>= 2.2.0) but it is not installable Depends: libatspi2.0-0:arm64 (>= 2.9.90) but it is not installable Depends: libc6:arm64 (>= 2.17) but it is not installable Depends: libc6:arm64 (>= 2.28) but it is not installable Depends: libcairo2:arm64 (>= 1.6.0) but it is not installable Depends: libcurl3-gnutls:arm64 but it is not installable or libcurl3-nss:arm64 but it is not installable or libcurl4:arm64 but it is not installable or libcurl3:arm64 but it is not installable Depends: libdbus-1-3:arm64 (>= 1.9.14) but it is not installable Depends: libdrm2:arm64 (>= 2.4.75) but it is not installable Depends: libexpat1:arm64 (>= 2.1~beta3) but it is not installable Depends: libgbm1:arm64 (>= 17.1.0~rc2) but it is not installable Depends: libglib2.0-0:arm64 (>= 2.37.3) but it is not installable Depends: libgssapi-krb5-2:arm64 (>= 1.17) but it is not installable Depends: libgtk-3-0:arm64 (>= 3.9.10) but it is not installable Depends: libgtk-3-0:arm64 (>= 3.9.10) but it is not installable or libgtk-4-1:arm64 but it is not installable Depends: libkrb5-3:arm64 (>= 1.6.dfsg.2) but it is not installable Depends: libnspr4:arm64 (>= 2:4.9-2~) but it is not installable Depends: libnss3:arm64 (>= 2:3.30) but it is not installable Depends: libnss3:arm64 (>= 3.26) but it is not installable Depends: libpango-1.0-0:arm64 (>= 1.14.0) but it is not installable Depends: libstdc++6:arm64 (>= 4.1.1) but it is not installable Depends: libstdc++6:arm64 (>= 5) but it is not installable Depends: libstdc++6:arm64 (>= 5.2) but it is not installable Depends: libstdc++6:arm64 (>= 6) but it is not installable Depends: libx11-6:arm64 but it is not installable Depends: libx11-6:arm64 (>= 2:1.4.99.1) but it is not installable Depends: libxcb1:arm64 (>= 1.9.2) but it is not installable Depends: libxcomposite1:arm64 (>= 1:0.4.4-1) but it is not installable Depends: libxdamage1:arm64 (>= 1:1.1) but it is not installable Depends: libxext6:arm64 but it is not installable Depends: libxfixes3:arm64 but it is not installable Depends: libxkbcommon0:arm64 (>= 0.5.0) but it is not installable Depends: libxkbfile1:arm64 (>= 1:1.1.0) but it is not installable Depends: libxrandr2:arm64 but it is not installable Recommends: libvulkan1:arm64 but it is not installable E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
07-18
<think>根据用户的问题,他在树莓派5上安装VS Code时遇到了依赖问题。结合引用内容,我们可以推测问题可能源于软件源配置不正确或依赖包冲突。以下是解决步骤: ### 步骤1:检查并修复软件源配置 引用[2]提到可以通过修改`/etc/apt/sources.list`和`/etc/apt/sources.list.d/raspi.list`来更换软件源。确保树莓派5使用的是正确的ARM64架构源(因为树莓派5是64位系统)。 1. **备份当前源文件**: ```bash sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak ``` 2. **编辑软件源**: 使用清华源(适用于Raspberry Pi OS bullseye): - 修改`sources.list`: ```bash sudo nano /etc/apt/sources.list ``` 替换为以下内容: ``` deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib ``` 引用[5]提供了类似的配置。 - 修改`raspi.list`: ```bash sudo nano /etc/apt/sources.list.d/raspi.list ``` 替换为: ``` deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main ``` 3. **保存并退出**,然后更新软件包列表: ```bash sudo apt update ``` ### 步骤2:修复损坏的包和未满足的依赖 如果更新后仍有依赖问题,尝试以下命令修复: 1. **修复损坏的包**: ```bash sudo apt --fix-broken install ``` 2. **清理可能的包冲突**: ```bash sudo apt autoclean sudo apt autoremove ``` 3. **更新系统**: ```bash sudo apt upgrade ``` ### 步骤3:重新安装VS Code 引用[4]提到添加VS Code的软件源。由于树莓派5是ARM64架构,确保使用正确的源: 1. **添加Microsoft GPG密钥**: ```bash wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ ``` 2. **添加VS Code源**(注意架构为`arm64`): ```bash echo "deb [arch=arm64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list ``` 3. **更新并安装**: ```bash sudo apt update sudo apt install code ``` ### 步骤4:处理特定依赖错误 如果安装过程中提示类似`libapt-pkg5.0`的依赖错误(如引用[1]),尝试: 1. **单独安装缺失的依赖**: ```bash sudo apt install libapt-pkg5.0 ``` 2. 如果上述无效,尝试强制安装指定版本(需先查找可用版本): ```bash apt-cache policy libapt-pkg5.0 sudo apt install libapt-pkg5.0=1.8.2.1 # 替换为实际版本 ``` ### 步骤5:使用 aptitude(可选) 如果`apt`无法解决依赖,可尝试安装`aptitude`(引用[1]),它提供更智能的依赖解决方案: ```bash sudo apt install aptitude sudo aptitude install code # 在解决依赖冲突时,aptitude会提供解决方案选项 ``` ### 验证安装 安装完成后,运行: ```bash code --version ``` 或通过图形界面启动VS Code。 ### 注意事项 - 树莓派5的Raspberry Pi OS应使用64位版本,以确保兼容性。 - 如果使用32位系统,需要将上述步骤中的`arm64`改为`armhf`(但VS Code官方推荐64位)。 --- ### 相关问题 1. 树莓派5应该使用32位还是64位系统安装VS Code? 2. 如何解决树莓派5上VS Code安装后启动缓慢的问题? 3. 树莓派5上VS Code支持哪些编程语言扩展?</think>在树莓派5上安装VS Code时遇到依赖问题,通常是由于软件源配置不正确或系统依赖关系不完整导致的。以下是系统的解决方案: ### 步骤1:修复软件源配置 1. **更新软件源列表**(使用清华源): ```bash sudo nano /etc/apt/sources.list ``` 替换为以下内容: ``` deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib ``` 引用[5] 2. **更新树莓派专用源**: ```bash sudo nano /etc/apt/sources.list.d/raspi.list ``` 替换为: ``` deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main ``` 引用[2] 3. **保存后更新源**: ```bash sudo apt update && sudo apt upgrade -y ``` ### 步骤2:修复损坏的依赖关系 1. **清理无效包**: ```bash sudo apt autoclean sudo apt autoremove -y ``` 2. **修复依赖关系**: ```bash sudo apt --fix-broken install sudo dpkg --configure -a ``` 3. **安装基础依赖**: ```bash sudo apt install -f -y sudo apt install libx11-dev libxext-dev libxrender-dev libxi-dev libxtst-dev ``` ### 步骤3:正确安装VS Code 1. **添加Microsoft GPG密钥**: ```bash wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ ``` 2. **添加VS Code源**(ARM64架构): ```bash echo "deb [arch=arm64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list ``` 引用[4] 3. **安装VS Code**: ```bash sudo apt update sudo apt install code -y ``` ### 步骤4:验证安装 ```bash code --version # 应输出类似:1.85.0 123456789 ``` ### 常见问题解决 1. **若提示"held broken packages"**: ```bash sudo aptitude install code ``` 选择智能解决方案(选项通常为3)引用[1] 2. **图形界面启动问题**: ```bash sudo apt install libxss1 libasound2 ``` ### 安装后配置 ```bash # 添加桌面快捷方式 sudo ln -s /usr/share/code/code /usr/bin/code ``` > **注意**:树莓派5建议使用64位系统(Raspberry Pi OS 64-bit),32位系统可能遇到兼容性问题。安装过程约需15-30分钟,取决于网络速度。 --- ### 相关问题 1. 树莓派5应该使用32位还是64位系统安装VS Code? 2. 如何解决树莓派5上VS Code安装后启动缓慢的问题? 3. 树莓派5上VS Code支持哪些编程语言扩展?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值