DirectXでもOpenGLでも
ピクセル、フラグメント、バーテックスシェーダは

「全部」

アセンブラで書かなければいけなかったので
OpenGLでシェーダを扱う者はアセンブラの習得が必須であった
とは言ってもnvidiaやATI、SGIからサンプルアセンブラコードが提供されているので
それをまんまブチ込み、テキトーに合うように書き換えるという
昔ながらの旧い人間からすれば邪道な手法が主流であったものよ

だが最近になってHLSLやGLSLという言語ができたので
Cを知っていてDX、OGLそれぞれのAPIにある命令さえ覚えれば
高級言語で書けるようになった