OpenGL необходим доступ к рабочему столу для создания контекста рендеринга, а служба по умолчанию не имеет доступа к рабочему столу.
Вам необходимо запустить сервис в интерактивном режиме. Для этого зайдите в свойства сервиса в Администрирование. Там, где вы устанавливаете учетную запись пользователя службы, у вас будет возможность запустить службу в интерактивном режиме или что-то вроде «Разрешить службе взаимодействовать с рабочим столом». Вы также можете попробовать войти в службу как другой пользователь.
Если вы работаете с приложением .Net IIS, вам также придется заставить управляемую часть сервера регистрироваться как другой пользователь.
EDIT:
Я забыл сказать, что в данный момент пользователь должен войти на рабочий стол с аппаратным ускорением, и машина не должна быть заблокирована. Это отстой, но это единственный способ, которым я заставил это работать раньше. У нас был грязный скрипт, который регистрировал пользователя сразу после запуска машины.
В качестве дополнительного примечания мы использовали DirectX, поэтому он может не относиться к OpenGL.