Начните все-таки с движка.
У three.js огромное сообщество, в разы больше чем у vanilla webGL, и там действительно много подводных камней.
Например — повторяться могут только текстуры с стороной размерностью в степень двойки, иначе — будет растягиваться последняя полоска пикселей. Я это решение гуглил почти полсуток, и нашел именно в обсуждении three.js, webGL-коммьюнити толком и не существует.
Да и на деле он предоставляет просто удобный интерфейс, он похож на jquery по сути. В графическом движке скорее стоит ожидать поддержку определенных тканей, хитрой подсветки или еще чего-то, а тут просто обертка.
Берите three.js. Потом, если захотите, переходите на свой. Но сначала покопайте его.