Why would directx be better? OpenGL will run on non windows platforms, directx will not. In my opinion both are as hard to learn, and are equally good for drawing shit on the display. Also OpenGL would be better learn if you want to do graphics for phones and stuff, like iphone, android, iPad etc.
You can create whatever graphics and effects you like using both libraries. They both rely on the same principles. Learning one of them will make learning the other one easier, just like learning java makes learning C++ easier, or the other way around. What is it you want to do exactly? What is your goal?
My suggesion would be to go for OpenGL and jump into shaders from the beginning.