So here’s the deal… I’ve been makeing HLSL shaders for a different engine and I was wondering if I port it to unity if anyone would anyone be interested in buying them.
These shaders are designed for someone who wants high quality shaders with lots of external control points to fine tune the looks of the shader to his/her liking with no HLSL knowledge required.
Now there is a couple problems with this. The first one is that unity doesn’t use HLSL but something the devs made up for some reason. But I also heard that porting HLSL code to unity is fairly easy.
But the biggest problem is that it looks like you need the pro version in order to convert the HLSL shaders for the engine. If so, is there like an evaluation version of the pro engine or something that I can use to make and demonstrate the shaders? I can’t see paying the high pro fees for the better licensing options when I don’t intend on selling anything actually made with the engine. At most maybe some freely available interactive demos. But even then I probably will just make videos of the shader in action so no compiled version of the engine will even be distributed.
Priceing depends on how much time I’ve spent makeing the shader. For instance right now I’m working on a varient of ATI’s advanced multitone car shader. I’ve added a varient of the glitter shader, and the sobel edge detection filter shader to it. (sobel is used to enhance every normal mapped texture the shader uses. sobel filtering is per texture optional though just by setting a bool variable for each texture) As well as altering the alograthims to include usefull control points of which there are currently over 30. I’m currently adding support for normal mapped decals, with multiple light source support on the drawing board. The shader also has an ease of use and and performance mode where the control points (variables that you write to from within the engine) can be written to individually for ease of use or you can pass 16 at once with 4x4 matrixes for speed. Depending on the features I can impliment I plan on selling this one for around $30-$50 USD.
But I guess the first problem to overcome is if anyone would be willing to buy anything fancy like this shader for unity in the first place…
I would like to hear the communities thoughts on the matter.
Writing/converting shaders does not require the Pro version (some shaders require pro features, like render to texture)… download the trial version and dive in
A lot of custom shaders made for Unity are shared for free in the community and on the wiki. That’s not to say that someone with talent couldn’t come in and make money selling shader packs. I could see some issues with it though since a shader could be easily redistributed or rewritten by someone else for free for the rest of the community.
It’s an interesting idea though and I’m curious what others think.
If it works really well and meets my Unity base requirement, which is good fallback from high end (SM3) to low end (ffp / SM2) hardware with respect to ATI, NVIDIA, Intel
I wouldn’t pay for something thats ATI targeted. NVIDIA should be the primary and the rest secondary, as NVIDIA are the ones with the best working drivers and after all they sell the majority of all gpus on Apple.
ATI drivers tend to be better on Macs. Apple is using more nVidia right now, but they go back and forth so I don’t think targeting a particular brand is the best idea.
The shader runs on both nvidia and ATI hardware and is not geared towards either one.
It’s just this particular one was based off some of the examples provided by ATI. I might base a shader off nvidias samples in the future for example.
The shader would have licenceing agreement that would prevent modification to the shader code, as well as non-redistribution agreement. (with exception of a game release or something of course) Basicly the same thing everyone aggrees too if when they buy and install a game…
I have seen the shaders on the wiki but none of them are as flexible or as detailed as mine. But it’s the main reason I thought I better ask the community to see if they would frown upon having to pay for shaders.
I’ll give it a good week for everyone to give their oppinions on the matter.
I think creating newer/more powerful shaders that people could buy would be a great idea! Coming from the software rendering world, releasing a plugin suite or bundle would be much better from a buyer standpoint. One shader for $30-$50 might not go over as well. Selling multiple shaders at once as a bundle would be something I would buy. Like selling models/textures in volume you would make up your costs and make a profit by keeping the final price down.
The other question is will you be around to recompile when future versions of Unity come out?
$30-50 makes sense. Even if you have the capability to produce your own shaders, can you do so more cheaply? We would pay that much for a cleanly-made shader if we needed it.
And “ShaderLab” in Unity wraps around Cg. You can basically code in HLSL–the Unity-specific stuff is for binding colors to exposed settings, defining passes, etc.
Here’s a shader that has come up a number of times yet AFAIK no one’s successfully created and I’d be willing to pay $30 - $50 for: a realistic Ocean Shader, with variable wave heights, frequency and shape, and foam “white caps”. Many engines have this already (including DX Studio and Quest 3D) but not Unity. (I even have one partly made if you wanted that to start with).
(I’m just clarifying a couple of points here… not really answering the question posted)
Unity uses Cg for the actual vertex/pixel shaders. Which is pretty much the same as HLSL. Why? Because HLSL does not exist on the Mac
For “the rest of the things” (e.g. setting up blending modes, configuring fixed function pipeline), Unity uses it’s own thing (ShaderLab). This pretty much the same functionality as .fx files, but written differently. Why? Again, .fx files do not exist outside of D3D (which does not exist on Mac).
This is not true. Shaders work just fine in Indie. Of course, some of more interesting uses of shaders (that involve render-to-texture, for example) require Unity Pro.
I’d say the biggest challenges in writing production ready shaders are:
It has to run decently everywhere. Having a shader model 2.0 requirement is probably okay, but it has to run on Intel 915/945, Radeon 9500 and similar. This means unextented shader model 2.0. It’s fine to have a shader model 3.0 version of course.
Integration with lighting. There’s no industry standard way on how to do lighting with shaders, so most examples go for “one directional light!” approach. If you want to integrate with all light shadow types in Unity, you have to do it properly in the shader. See documentation. Of course, you can say that the shader does not integrate with lights, but instead uses cubemap lighting or something like that, but that has to be clearly communicated. Otherwise someone will try some shader and will wonder why it does not receive shadows from the lights.