Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by DuckerDuck · Dec 29, 2013 at 03:38 PM · shadertutorialcgnvidia

Making a simple cg program work in unity

Hi,

I've been wanting to learn more about shaders and I started on the CG Tutorial at:

http://http.developer.nvidia.com/CgTutorial

I am trying to make the first example shader work within unity, but I seem to be missing some information involving shader lab. This is the given example:

 struct C2E1v_Output {
 
   float4 position : POSITION;
 
   float4 color    : COLOR;
 
 };
 
 C2E1v_Output C2E1v_green(float2 position : POSITION)
 
 {
 
   C2E1v_Output OUT;
 
   OUT.position = float4(position, 0, 1);
 
   OUT.color    = float4(0, 1, 0, 1);  // RGBA green
 
   return OUT;
 
 }

And this is the unity shader I tried but doesn't work:

 Shader "Testing shaders/Test 1" {
     Properties {
         _MainColor ("Base Color", Color) = (0,1,0,1)
     }
     SubShader {    
         CGPROGRAM 
         #pragma C2E1v_Output C2E1v_green
         struct C2E1v_Output 
         {
               float4 position : POSITION;
               float4 color    : COLOR;
         };
 
         C2E1v_Output C2E1v_green(float2 position : POSITION)
         {
             C2E1v_Output OUT;
             OUT.position = float4(position, 0, 1);
             OUT.color    = _MainColor;
              return OUT;
          }
             
         ENDCG
     } 
     FallBack "Diffuse"
 }
 


Here is a link to where I am on the tutorial.

Some help would be much appreciated.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Owen-Reynolds · Dec 29, 2013 at 05:23 PM

ShaderLab uses a completely different, more primitive system, from back before could you program graphics cards. I suspect that's when it was first developed. Some of the set-up code is the same, but the actual coding only sets modes and inputs. ShaderLab can be ignored if you just want cg shaders.

Maybe start with a working Unity shader. The Unity shader page with all the soldiers has some (the last example has vert+frag shaders.) Then downloading the built-in unity shaders gives the code for more. The guts are regular cg/HLSL code. And the set-up code is standard cg with different words and some magic (if you request certain items, Unity auto-computes and sends them.)

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image DuckerDuck · Dec 30, 2013 at 08:54 AM 0
Share

Thank you for your response, I've found some help in the shader lab docs. There you can find some examples for vertex and fragment shaders. The included explanation isn't perfect but with some googling you can figure it out.

Here's a good place to start

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

19 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to force the compilation of a shader in Unity? 5 Answers

UnityObjectToClipPos is inverted? 0 Answers

Unity 5 upgrade broke lightmapped shader 1 Answer

How to get view space position of a pixel 0 Answers

Sizeof float in cg shader 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges