>頂点の配列は自分で作ってるんだろ?
>んで、それをGLの関数にセットして描画してるんだろ?

だから、頂点が3つあったときに(0 0 0) (1 1 0) (-1 1 0)
struct IN{
float4 position1 : POSITION
float4 color : COLOR
}
だと、POSITIONが1個しか無いじゃん
1個しかないのに、3つの頂点入るの?

3つのうちのどれかが入るんでしょ?それuniformじゃないと指定できないじゃん
勝手にCgの方でやられたってこっちが困るんだよ
3つのうちどれが入るか言ってよ!ヴァカ!