mirror of
https://github.com/quantum5/punyverse.git
synced 2025-04-24 13:11:57 -04:00
New asteroids and scaling.
This commit is contained in:
parent
6fa6bf0429
commit
df3126e232
|
@ -1,11 +1,11 @@
|
|||
# Blender MTL File: 'mainbeltastroid.blend'
|
||||
# Blender MTL File: 'None'
|
||||
# Material Count: 1
|
||||
|
||||
newmtl Material
|
||||
Ns 96.078431
|
||||
Ns 92.156863
|
||||
Ka 0.000000 0.000000 0.000000
|
||||
Kd 0.254837 0.254837 0.254837
|
||||
Ks 0.159273 0.159273 0.159273
|
||||
Kd 0.389517 0.389517 0.389517
|
||||
Ks 0.303197 0.303197 0.303197
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
|
103
punyverse/assets/models/asteroids/mainbelt2.obj
Normal file
103
punyverse/assets/models/asteroids/mainbelt2.obj
Normal file
|
@ -0,0 +1,103 @@
|
|||
# Blender v2.66 (sub 1) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib mainbelt.mtl
|
||||
g Cube.002
|
||||
v -0.289079 -0.829861 0.215310
|
||||
v 0.057641 -0.817976 -0.343786
|
||||
v 0.543391 -0.663372 0.025647
|
||||
v -0.097897 -0.384127 -0.766643
|
||||
v 0.545964 -0.487153 -0.565775
|
||||
v 0.504985 -0.681732 0.425810
|
||||
v 0.124050 -0.113115 0.938530
|
||||
v -0.706349 -0.467985 0.350889
|
||||
v -0.654122 -0.523922 -0.388949
|
||||
v 0.176965 0.828195 -0.359842
|
||||
v -0.383487 0.292923 -0.693979
|
||||
v -0.738214 0.373419 -0.411660
|
||||
v -0.714335 0.466863 0.124949
|
||||
v -0.398389 0.720367 0.469422
|
||||
v 0.451232 0.721178 0.355306
|
||||
v 0.882521 0.137464 -0.019655
|
||||
v 0.520709 0.162782 -0.672326
|
||||
v 0.692252 0.151771 0.606789
|
||||
v 0.088118 0.461316 0.717918
|
||||
v -0.701579 0.121702 0.577301
|
||||
v 0.132479 0.283880 -0.909159
|
||||
vn 0.220116 -0.968562 0.115914
|
||||
vn 0.121188 -0.670211 -0.732209
|
||||
vn 0.190171 -0.981386 -0.026776
|
||||
vn -0.062026 -0.690971 0.720217
|
||||
vn -0.653070 -0.757215 0.011149
|
||||
vn -0.323725 0.721233 -0.612393
|
||||
vn -0.462979 0.861322 -0.209224
|
||||
vn 0.018021 0.989816 0.141208
|
||||
vn 0.872936 -0.045704 -0.485690
|
||||
vn 0.912617 -0.392863 -0.113086
|
||||
vn 0.731293 0.657305 -0.182098
|
||||
vn 0.733716 0.559838 -0.385022
|
||||
vn 0.919930 -0.268686 0.285545
|
||||
vn 0.580622 -0.295204 0.758771
|
||||
vn 0.400075 0.506643 0.763710
|
||||
vn -0.295046 0.312154 0.903055
|
||||
vn -0.794843 0.471399 0.382109
|
||||
vn -0.998990 0.017376 0.041429
|
||||
vn -0.999351 -0.005584 0.035599
|
||||
vn -0.993512 -0.094698 -0.062975
|
||||
vn -0.266191 0.695397 -0.667507
|
||||
vn 0.273402 -0.145262 -0.950868
|
||||
vn -0.385081 -0.063621 -0.920687
|
||||
vn 0.461921 -0.850540 -0.251416
|
||||
vn -0.256648 -0.720214 -0.644534
|
||||
vn -0.357494 -0.902317 -0.240879
|
||||
vn 0.550017 0.570541 -0.609888
|
||||
vn -0.434722 0.890284 -0.135687
|
||||
vn 0.084553 0.767893 0.634973
|
||||
vn 0.848402 0.468199 0.246991
|
||||
vn 0.919967 -0.385585 0.070604
|
||||
vn 0.342132 0.355460 0.869824
|
||||
vn -0.299721 0.325644 0.896730
|
||||
vn -0.275650 -0.599397 0.751492
|
||||
vn -0.454304 -0.316110 0.832876
|
||||
vn -0.547764 -0.072427 -0.833492
|
||||
vn 0.416633 -0.324827 -0.849061
|
||||
vn -0.637398 -0.188684 -0.747076
|
||||
usemtl Material
|
||||
s off
|
||||
f 1//1 2//1 3//1
|
||||
f 4//2 5//2 2//2
|
||||
f 6//3 1//3 3//3
|
||||
f 7//4 1//4 6//4
|
||||
f 1//5 8//5 9//5
|
||||
f 10//6 11//6 12//6
|
||||
f 10//7 13//7 14//7
|
||||
f 10//8 14//8 15//8
|
||||
f 16//9 5//9 17//9
|
||||
f 3//10 5//10 16//10
|
||||
f 16//11 10//11 15//11
|
||||
f 16//12 17//12 10//12
|
||||
f 16//13 18//13 6//13
|
||||
f 7//14 6//14 18//14
|
||||
f 19//15 18//15 15//15
|
||||
f 19//16 14//16 20//16
|
||||
f 20//17 14//17 13//17
|
||||
f 20//18 13//18 12//18
|
||||
f 20//19 12//19 8//19
|
||||
f 12//20 9//20 8//20
|
||||
f 11//21 10//21 21//21
|
||||
f 17//22 5//22 4//22
|
||||
f 21//23 4//23 11//23
|
||||
f 3//24 2//24 5//24
|
||||
f 2//25 9//25 4//25
|
||||
f 2//26 1//26 9//26
|
||||
f 21//27 10//27 17//27
|
||||
f 13//28 10//28 12//28
|
||||
f 15//29 14//29 19//29
|
||||
f 18//30 16//30 15//30
|
||||
f 3//31 16//31 6//31
|
||||
f 7//32 18//32 19//32
|
||||
f 20//33 7//33 19//33
|
||||
f 1//34 7//34 8//34
|
||||
f 7//35 20//35 8//35
|
||||
f 9//36 12//36 4//36
|
||||
f 4//37 21//37 17//37
|
||||
f 11//38 4//38 12//38
|
|
@ -1,6 +1,6 @@
|
|||
from math import *
|
||||
from pyglet.gl import *
|
||||
from random import random, uniform
|
||||
from random import random, uniform, gauss, choice
|
||||
|
||||
TWOPI = pi * 2
|
||||
|
||||
|
@ -163,19 +163,16 @@ def colourball(r, lats, longs, colour, fv4=GLfloat * 4):
|
|||
def belt(radius, cross, object, count):
|
||||
for i in xrange(count):
|
||||
theta = TWOPI * random()
|
||||
x, y, z = cos(theta) * radius, 0, sin(theta) * radius
|
||||
# Pretend to move horizontally around the x-axis by delta
|
||||
# then I multiply it by a rotation matrix about angle theta
|
||||
# the z-axis need not to be multiplied by the matrix, as it's 0
|
||||
# Do note the rotation is counter clockwise
|
||||
delta = cross * uniform(-1, 1)
|
||||
x += cos(theta) * delta
|
||||
z += sin(theta) * delta
|
||||
y += cross * uniform(-1, 1)
|
||||
r = gauss(radius, cross)
|
||||
x, y, z = cos(theta) * r, gauss(0, cross), sin(theta) * r
|
||||
|
||||
glPushMatrix()
|
||||
glTranslatef(x, y, z)
|
||||
glCallList(object)
|
||||
scale = gauss(1, 0.5)
|
||||
if scale < 0:
|
||||
scale = 1
|
||||
glScalef(scale, scale, scale)
|
||||
glCallList(choice(object))
|
||||
glPopMatrix()
|
||||
|
||||
|
||||
|
|
|
@ -288,11 +288,11 @@
|
|||
},
|
||||
"belts": {
|
||||
"main": {
|
||||
"model": "asteroids/mainbelt.obj",
|
||||
"model": ["asteroids/mainbelt.obj", "asteroids/mainbelt2.obj"],
|
||||
"radius": "2.362 * AU",
|
||||
"cross": 1000,
|
||||
"scale": 30,
|
||||
"count": 1024,
|
||||
"count": 2048,
|
||||
"rotation": 114536500
|
||||
}
|
||||
},
|
||||
|
|
|
@ -201,10 +201,15 @@ def load_world(file):
|
|||
rotation = info.get('period', 31536000)
|
||||
theta = 360 / (rotation + .0) if rotation else 0
|
||||
|
||||
object_id = model_list(load_model(info['model']), info.get('sx', scale), info.get('sy', scale),
|
||||
info.get('sz', scale), (0, 0, 0))
|
||||
models = info['model']
|
||||
if not isinstance(models, list):
|
||||
models = [models]
|
||||
objects = []
|
||||
for model in models:
|
||||
objects.append(model_list(load_model(model), info.get('sx', scale), info.get('sy', scale),
|
||||
info.get('sz', scale), (0, 0, 0)))
|
||||
|
||||
world.tracker.append(Belt(compile(belt, radius, cross, object_id, count),
|
||||
world.tracker.append(Belt(compile(belt, radius, cross, objects, count),
|
||||
(x, y, z), (inclination, longitude, argument),
|
||||
rotation_angle=theta, world=world))
|
||||
|
||||
|
|
Loading…
Reference in a new issue