利用shader繪製乙個帶經緯度的球體

2021-10-01 18:21:21 字數 1798 閱讀 7324

引子: 這是曾經的一道webgl面試題。

出處

最終效果:

1、建立幾何球體

class);

// 網格

var mesh =

newthree.mesh

(geometry, material)

; mesh.name =

"spare"

this

.scene.

add(mesh);}

}

建立乙個球體:

2、使用著色器材質

import

from

'./glsl.fragmentshader.js'

import

from

'./glsl.vertexshader.js'

class);

...}

}

glsl.vertexshader.js

export

let vertexshader =

`// 這裡使用 uv,將傳給片元著色器使用。

varying vec2 vuv;

void main()

`

glsl.fragmentshader.js, 這裡先設定為白色。

3、繪製網格

重點終於來了!

1)感受一下uv

export

let fragmentshader =

`varying vec2 vuv;

void main()

`

uv.x 範圍是從0~1,那麼體現在球體的x方向,顏色就是從黑色到白色。uv.y同理。

2)繪製一條線

根據uv座標的特性,對uv座標進行不同處理,那麼就可以繪製線了。

export

let fragmentshader =

`varying vec2 vuv;

void main()

else

}`

這樣就會出現多條線:

4、繪製經緯線

有了前面的基礎,那麼經緯線就很好繪製了。

varying vec2 vuv;

void

main()

else

}`

最終效果:

如何利用Python繪製乙個愛心

剛學習python幾周,閒來無事,突然想嘗試畫乙個愛心,步驟如下 開啟介面 開啟python shell介面,具體是python語言的idle軟體指令碼。2.建立指令碼 單擊左上角 file 再單擊 new file 建立乙個新的指令碼檔案。3.如下 1 from turtle import 2de...

第乙個Shader程式

fx檔案 1 float4x4 matworld 2float time 1.0f 3 4struct vs output5 910vs output vs float4 pos position,float4 color color 1119 20float4 ps vs output vsout...

3乙個簡單的Shader

乙個簡單的unityshader看起來是這樣 cg 段 由cgprogram與endcg包圍起來 編譯指令這裡的用來告訴unity,什麼是頂點著色器,什麼是片元著色器 pragma vertex 頂點著色器函式名 pragma fragment 片元著色器的函式名 在呼叫drawcall的時候,me...