diff --git a/fps.txt b/fps.txt index 466b5d5..0ee8cf3 100644 --- a/fps.txt +++ b/fps.txt @@ -1,2413 +1,2897 @@ 0 -416666 -118 -146 -208 -188 -262 -210 -147 -194 +434782 +334 +432 +324 190 -141 -195 -169 -161 -189 -139 -144 -179 -169 -187 -190 -200 -218 -192 -216 -203 -236 -220 -188 -218 -218 -246 -173 -206 -224 -168 -237 -220 -222 -206 -214 -243 -186 -202 -228 -252 -177 -126 -206 -210 -218 -269 -199 -203 -192 -234 -169 -228 -235 -188 -218 -266 -219 -185 -235 -258 -186 -180 -213 -253 -181 -208 -218 -202 -213 -232 -224 -187 -226 -200 -174 -202 -227 -261 -191 -198 -220 -203 -213 -225 -225 -179 -203 -265 -204 -195 -184 -199 -162 -224 -207 -170 -193 -213 -144 -184 -230 -174 -171 -180 -144 -168 -169 -180 -187 -167 -154 -187 -192 -168 -204 -210 -185 -207 -240 -170 -204 -223 -211 -198 -229 -267 -179 -180 -228 -198 -189 -218 -207 -161 -203 -249 -197 -204 -223 -222 -193 -242 -253 -197 -201 -234 -234 -134 -185 -158 -157 -182 -161 -165 -198 -168 -169 -189 -159 -180 -204 -165 -187 -222 -196 -192 -197 -263 -168 -185 -244 -190 -210 -224 -259 -187 -200 -257 -202 -183 -242 -256 -175 -202 -244 -212 -183 -226 -204 -161 -206 -254 -186 -191 -232 -246 -155 -221 -226 -170 -207 -252 -101 -172 -169 -156 -173 -146 -169 -175 -150 -177 -182 -152 -151 -129 -144 -136 -126 -159 -110 -128 -115 -164 -155 -154 -204 -136 -187 -201 -147 -199 -165 -161 -180 -156 -150 -205 -151 -154 -194 -150 -185 -186 -147 -156 -179 -165 -181 -141 -130 -154 -137 -182 -161 -171 -199 -224 -194 -248 -256 -189 -189 -227 -216 -183 -230 -245 -191 -211 -237 -266 -198 -231 -240 -212 -204 -215 -234 -201 -211 -258 -243 -196 -219 -249 -185 -215 -249 -216 -184 -206 -249 -211 -182 -208 -226 -196 -205 -233 -239 -225 -212 -258 -239 -221 -222 -259 -209 -205 -236 -274 -204 -188 -233 -239 -200 -213 -236 -206 -172 -232 -218 -190 -216 -261 -201 -195 -220 -237 -177 -221 -217 -180 -208 -251 -245 -174 -205 -264 -189 -195 -254 -218 -202 -209 -251 -211 -211 -218 -251 -211 -193 -244 -204 -197 -232 -243 -221 -217 -203 -238 -196 -215 -225 -224 -195 -215 -252 -223 -152 -207 -200 -203 -223 -241 -192 -197 -217 -203 -137 -234 -188 -174 -234 -242 -179 -206 -214 -192 -196 -214 -185 -202 -229 -257 -151 -158 -199 -164 -162 -182 -139 -198 -162 -156 -198 -179 -158 -192 -170 -157 -180 -159 -173 -225 -162 -146 -223 -155 -175 -197 -155 -160 -164 -111 -140 -118 -161 -118 -174 -165 -152 -210 -173 -145 -185 -145 -181 -207 -152 -178 -206 -162 -184 -197 -148 -186 -194 -127 -140 -143 -179 -197 -157 -171 -199 -145 -161 -240 -180 -248 -173 -196 -205 -254 -270 -194 -194 -241 -227 -193 -171 -215 -209 -236 -251 -240 -207 -227 -247 -198 -196 -263 -248 -195 -216 -244 -233 -192 -227 -249 -186 -179 -260 -235 -196 -209 -242 -205 -207 -211 -259 -213 -211 -247 -246 -200 -205 -233 -270 -195 -230 -217 -209 -188 -226 -246 -206 -220 -212 -194 -224 -244 -250 -207 -187 -254 -241 -186 -216 -257 -215 -197 -237 -258 -188 -192 -256 -253 -197 -207 -252 -227 -209 -237 -267 -203 -188 -254 -242 -192 -199 -236 -244 -192 -214 -225 -215 -198 -210 -241 -202 -243 -244 -236 -222 -209 -246 -207 -213 -238 -242 -204 -193 -240 -227 -180 -189 -256 -172 -181 -204 -175 -148 -204 -152 -183 -221 -116 -128 -100 -91 -99 -136 -154 -198 -152 -168 -198 131 -143 -147 -166 -209 -168 -159 -215 -160 -148 -207 -143 -167 -190 -155 -163 -166 -164 -196 -178 -162 -198 -171 -167 -209 -168 -148 -184 -151 -167 -211 +174 +149 +226 +158 153 -178 -206 -146 -189 -199 -146 -189 -183 -168 -203 -219 -160 -181 -211 -126 -143 -160 -158 -215 -197 -204 -232 -245 -197 -216 -228 -217 -216 -218 -203 -188 -220 -228 -214 -189 -230 -254 -212 -204 -255 -256 +148 171 -204 -242 -230 -207 -221 -243 -199 -205 -229 -246 -213 -195 -239 -197 -212 -237 -240 -195 -218 -242 -219 -203 -225 -252 -211 -219 -243 -238 -205 -214 -216 -249 -177 -207 -176 -130 -151 -156 +140 +210 146 -183 -171 -187 -230 -221 -208 -241 -253 -214 -183 -241 -253 -189 -209 -232 -218 -210 -208 -243 -202 -218 -238 -226 +180 193 -236 -245 -209 -225 -236 -241 -205 -205 -245 -243 -196 -134 -250 -193 -195 -222 -218 -212 -238 -235 -194 -197 -264 -214 -188 -219 -251 -221 -210 -227 -263 -191 -183 -227 -214 -201 -208 -226 -183 -206 -245 147 -209 -220 -269 -189 -214 -226 -157 -151 -206 -157 -163 -195 -137 -176 -189 -157 -158 -178 -149 -193 -162 -167 -204 -159 -164 -197 -146 -157 -164 -127 -207 -171 -156 -195 -150 -164 -200 -119 -188 -186 -155 -178 -156 -157 -168 -168 -181 -194 -149 -169 115 -110 -115 -134 -128 -129 -210 -156 -159 -203 -143 -180 -223 -178 -202 -202 -202 -220 -230 -264 -192 -211 -240 -223 -195 -212 -245 -206 -226 -234 -234 -154 -234 -251 -188 -199 -275 -238 -198 -222 +153 235 -229 +211 +145 +160 +120 +139 +154 +142 +162 +154 +113 +158 +226 +211 188 -234 -257 -198 -209 -247 -258 -184 -193 -213 -229 -212 -224 -241 -182 -207 -240 -224 -219 -226 -241 -214 -212 -226 -247 -207 -220 -243 -246 -198 -212 -237 -213 -170 -231 -232 -195 -198 -272 -243 -190 -223 -243 -226 +148 204 -199 -245 180 -181 -209 -174 +151 +215 +157 +152 178 -197 -159 -190 -250 -229 -201 -231 -257 -203 -209 -247 -242 -192 -214 -256 -239 -194 -226 -244 -216 -206 -220 -252 -210 -207 -245 -253 -201 +158 +168 +146 +187 189 -226 -222 -200 -226 -269 -204 -189 -240 -250 -189 -176 -231 -176 -193 -247 -226 -166 -209 -229 -190 -222 -241 -194 -206 -227 -225 +158 163 +140 +153 +175 +169 +177 +173 +135 +157 +201 +162 174 -195 +132 +137 +210 +169 +183 +168 +176 +131 +243 +170 +176 +181 +200 +200 +145 +207 +182 +213 +191 +178 +199 +164 +216 +222 +181 +170 +164 +160 +170 +175 +162 +164 +170 +165 +135 +185 +178 +169 +174 +164 +164 142 167 -174 -160 -182 -153 -147 -194 -169 -158 -186 -152 -166 -212 -139 -174 -208 -151 -170 -176 -152 +154 185 -161 -168 -214 -163 -158 -206 -152 -162 -201 -137 -174 -193 -158 -180 -188 -151 -184 -168 -157 -196 -180 -170 -187 -164 -177 -190 -167 -165 -184 -163 -170 -205 -174 -170 -178 -152 -164 -160 -161 -191 -198 -196 -194 -224 -182 -210 -272 -238 -191 -208 -259 -196 -201 -221 -284 -189 -202 -210 -190 -164 -236 -227 -202 -234 -254 -205 -198 -263 -261 -191 -198 -256 -245 -190 -186 -189 -192 -225 -228 -240 -199 -230 -228 -198 -217 -242 -243 -197 -220 -251 -242 -187 -215 -254 -216 -211 -206 -255 -196 -181 -244 -251 -181 -106 -215 -212 -244 -240 173 -217 -203 -155 -214 -247 -243 -170 -215 -248 -181 -231 -237 -244 -206 -216 -246 -221 -223 -223 -247 -214 -223 -225 -247 -205 -208 -213 -250 -198 -232 -218 -203 -197 -251 -247 -202 -197 -215 -193 -181 -223 -268 -194 -219 -251 -265 -177 -206 -232 -214 -199 -228 -252 +158 161 -237 -238 -199 +183 +165 +163 +208 +150 +178 +187 +205 +188 +163 +144 +208 +166 191 -254 -244 -174 -204 -238 -215 -194 -223 -222 -116 -148 -108 -141 +172 +160 +180 +180 124 -129 -128 -150 -187 -152 -167 -209 -144 -188 -226 -131 -161 -169 -148 -207 -149 -164 -192 -156 -188 -155 -99 -142 -128 -191 -154 -170 -213 -152 -172 -193 -137 -176 -194 -143 -187 -164 -167 -188 -164 -164 -209 -153 -177 -191 -151 -175 -185 -146 -179 -208 -147 -160 -208 -153 -176 -261 -168 -205 -216 -186 -211 -234 -262 -157 -226 -255 -176 -178 -261 -196 -172 -217 -245 -175 -233 -233 -190 -176 -258 -238 -180 -210 -272 -208 -200 -208 -269 -176 -206 -227 -258 -185 -219 -239 -204 -217 -210 -245 -175 -229 -254 -237 183 -242 -256 -192 -211 -243 -261 -184 -187 -265 -228 -188 -219 -267 -193 -197 -222 -266 -172 -226 -250 -232 -184 -220 -251 -179 -229 -242 -210 -186 -245 -236 -201 -221 -255 -225 -185 -216 -258 -211 -179 -218 -243 -194 -205 -221 -277 -193 -212 -214 -199 -210 -221 -241 -194 -218 -259 -240 -195 -234 -252 -219 -196 -229 -229 -181 -196 -264 -211 -178 -221 -265 -182 -204 -225 -210 -189 -213 -237 -180 -212 -246 -187 -187 -234 -236 -133 -176 -202 -145 -193 -144 -155 -202 -166 -159 -209 -147 -150 -213 -148 -162 -178 -131 -216 +175 169 -158 -185 -160 -148 -187 -143 -164 +171 +152 +142 +179 +178 +162 +184 178 -147 -192 -164 -151 -199 -150 -174 -205 -160 -165 -201 140 -187 +162 +147 +153 +145 +180 +137 +201 +166 +168 +166 171 -132 -192 -191 -174 -193 -95 -197 -198 -153 -176 -209 -143 -173 -181 +136 +188 168 -207 -221 -193 -220 -232 -214 -211 -234 -253 -220 -200 -242 -249 -204 -173 -214 -194 -181 -235 -248 -168 -207 -250 -191 -212 -250 -275 -204 -215 -238 -209 -207 -217 -232 -184 -200 -231 -211 -196 -219 -255 -184 -204 -257 -247 -190 -205 -247 -236 -214 -220 -266 -212 -209 -226 -267 -197 -196 -236 -272 -201 -211 -209 -214 -191 -234 -248 -210 -204 -246 -241 -189 -208 -252 -212 -186 -242 -238 -186 -199 -245 -193 -200 -224 -274 +164 +157 172 -220 -246 -260 -188 -206 -236 -185 -225 +123 207 -178 -152 -216 -175 -173 -197 -188 -205 -209 -223 -196 -222 -204 -197 -187 -220 -252 -195 -198 -210 -205 -208 -207 -221 -181 -207 -238 -201 -170 -217 -262 +184 165 -207 -214 -186 -194 -253 -207 -192 -202 -261 -170 -211 -233 -170 -143 -200 -158 -155 -184 -128 -172 -169 -156 -198 -179 -157 -178 -157 -168 -188 -154 -179 -178 -146 -178 -202 -152 -204 -201 -154 -178 -202 -159 -177 -195 -151 -205 -212 -154 -187 -217 -149 -193 -194 -132 -186 +175 167 -157 -198 -165 -170 -200 -165 -176 -201 -173 -157 -205 -165 -153 -190 -151 -175 -209 +136 +180 161 -213 -206 -177 -212 -219 -228 -192 -237 -226 -195 -210 -192 -248 -194 -170 -197 -175 -139 -205 -220 -233 -249 -240 -218 -212 -232 -187 -213 -239 -204 -175 -195 -208 -169 -219 -200 -173 -189 -255 -228 -197 -220 -251 -199 -208 -231 -232 -207 -216 -234 -216 -214 -216 -225 -205 -227 -221 -226 -183 -224 -244 -217 -197 -233 -256 -190 -209 -256 -239 -180 -227 -271 -239 -197 -231 -243 -197 -197 -232 -254 -172 -210 -245 -202 -227 -232 -254 -213 -209 -221 -214 -165 -223 -247 -201 193 -263 -231 -190 -222 -229 -216 -198 -240 -254 -208 -208 -222 -269 -193 -196 -243 -220 -213 -206 -248 -198 -195 -252 -260 -194 -174 -244 -175 -199 -243 -252 -176 -205 -231 -204 -181 -238 -220 -193 -223 -223 -141 -164 -191 -143 -170 -170 -154 -191 -172 -154 -199 -141 -132 -134 -132 +136 150 +173 +177 +168 +160 +160 +129 +143 +131 +144 +131 122 -160 +135 133 -170 -166 -146 -193 -174 -154 -191 -166 -162 -190 -164 -152 -194 -154 -167 -192 -159 -167 -162 -148 -206 -172 -158 -195 -164 -169 -182 -156 -187 -204 -169 -172 -191 -148 -157 -193 -153 -189 -179 -138 -182 -205 -180 -206 -225 -174 -216 -236 -220 -216 -210 -238 -199 -189 -193 -191 -169 -192 -175 -156 -223 -240 -199 -212 -264 -215 -209 -250 -259 -207 -203 -245 -273 -196 -200 -240 -198 -217 -210 -224 -163 -206 -262 -197 -182 -235 -270 -190 -214 -236 -249 -202 -223 -253 -206 -217 -203 -252 -206 -208 -211 -252 -208 -215 -240 -208 -207 -216 -256 -181 -222 -220 -221 -201 -247 -253 -188 -210 -273 -263 -177 -187 -257 -212 -59 -212 -238 -239 -183 -205 -235 -219 -203 -208 -252 -204 -201 -205 -242 -198 -206 -241 -243 -211 -212 -249 -206 -225 -234 -253 -216 -196 -224 -213 -222 -219 -231 -198 -188 -242 -226 -181 -205 -251 -215 -191 -234 -260 -185 -199 -234 -255 -195 -217 -251 -144 -165 -211 -148 -178 -216 -121 -179 -168 -163 -198 -179 -162 -178 -160 -174 -181 -154 -156 -194 -158 -158 -175 -151 -178 -170 -147 -191 -154 -154 -209 -141 -180 -196 -152 -191 -207 -148 -178 -194 +130 +132 127 -204 -178 -165 -202 -164 -177 -199 -187 -166 -198 -167 -162 -201 -143 -166 -186 -152 -170 -202 -159 -206 -245 -203 -172 -207 -227 -196 -213 -235 -199 -210 -245 -254 -167 -235 -222 -194 -169 -231 -243 -201 -216 -256 -220 -173 -203 -194 -179 -219 -209 -178 -213 -243 -170 -225 -223 -213 -191 -239 -251 -204 -200 -229 -230 -206 -201 -183 -212 -204 -213 -233 -185 -206 -253 -201 -208 -196 -271 -177 -200 -239 -245 -197 -216 -245 -195 -176 -235 -246 -195 -196 -237 -220 -187 -265 -253 -192 -205 -249 -233 -169 -215 -272 -190 -202 -243 -265 -152 -211 -215 -182 -205 -254 -230 -188 -221 -252 -188 -189 -211 -170 -203 -223 -237 -198 -206 -262 -237 -192 -202 -269 -201 -184 -246 -249 -188 -191 -237 -218 -193 -225 -236 -162 -198 -228 -187 -180 -203 -226 -192 -221 -251 -171 -198 -263 -153 -138 -208 -155 -169 -171 -141 -149 -189 -160 -188 -163 -167 -174 -141 -159 -199 -157 -179 -202 -152 -164 -180 -170 -187 -179 -153 -206 -210 -156 -189 -179 -152 -214 -160 -163 -203 +133 158 -171 -189 -144 -177 -189 -160 -188 -190 -139 -172 -201 -163 -206 -198 -158 -166 -211 -153 -173 -187 -154 -182 -186 -172 -211 -223 -143 -200 -244 -183 -195 -278 -201 -198 -256 -255 -205 -207 -238 -250 -170 -197 -251 -225 -179 -223 -230 -204 -213 -236 -222 -158 -206 -246 -186 -208 -238 -200 -211 -234 -243 -208 -195 -228 -205 -229 -216 -230 -196 -228 -226 -243 -194 -226 -219 -214 -205 -177 -256 -200 -205 -253 -268 -186 -197 -255 -234 -210 -226 -265 -204 -208 -250 -272 -178 -214 -248 -250 -186 -228 -263 -209 -190 -207 -209 -203 -232 -243 -221 -219 -221 -251 -191 -207 -231 -218 -172 -203 -227 -204 -203 -222 -277 -196 -210 -219 -234 -196 -185 -206 -199 -225 -253 -214 -195 -181 -257 -199 -210 -232 -237 -202 -213 -227 -186 -203 -222 -185 -183 -200 -266 -178 -199 -244 -200 -210 -232 -220 -162 -224 -238 -142 -165 -193 -147 168 -157 -160 -199 -178 -155 -194 -174 -164 -187 -177 -151 -198 -163 -146 -173 -107 -101 -112 -108 -107 104 +105 +184 +127 +134 +138 +99 +134 +133 +148 +115 +119 +134 +157 +140 +110 +106 +176 +139 +126 +133 +127 +136 +134 +121 +112 +131 +139 +130 +120 +110 +146 +139 +122 +122 +122 +120 +142 +119 +111 +133 +154 +126 111 109 +126 +126 +119 +114 +134 +131 +123 +115 +112 +119 +135 +119 +107 +124 +122 +127 +116 +130 +130 +128 +109 +120 +120 +122 +106 +112 +123 +128 +115 +116 +126 +118 +131 +104 +118 +107 +130 +103 +105 +127 +117 +108 +112 +118 +131 +107 +108 +121 +118 +131 +106 +115 +121 +128 +108 +107 +128 +118 +110 +92 +123 +117 +106 +97 +109 +121 +107 +103 +117 +122 +110 +103 +117 114 105 +106 +118 +119 +99 +107 +117 +127 +108 +100 +116 +112 +114 +97 +121 +114 +114 +99 +124 +118 +110 +97 +108 +114 +113 +99 +117 +112 +114 +98 +116 +109 +110 +95 +118 +111 +106 +99 +115 +112 +112 +98 +111 +117 +99 +105 +106 +117 +99 +100 +109 +110 +96 +101 +112 +103 +101 +104 +118 +92 +90 +108 +108 +93 +111 +104 +100 +96 +104 +105 +104 +93 +105 +98 +90 +102 +86 +107 +97 +98 +102 +86 +97 +99 +92 +92 +100 +95 +90 +104 +99 +91 +89 +99 +97 +85 +100 +106 +94 +102 +100 +91 +87 +107 +94 +85 +100 +100 +87 +97 +101 +92 +86 +97 +95 +84 +106 +98 +87 +99 +101 +94 +94 +104 +77 +97 +99 +102 +84 +106 +99 +87 +97 +99 +89 +100 +100 +86 +82 +103 +89 +86 +101 +98 +84 +103 +100 +90 +99 +100 +83 +82 +105 +98 +91 +104 +105 +84 +98 +106 +102 +85 +104 +94 +93 +104 +104 +85 +99 +100 +103 +84 +103 +104 +93 +104 +101 +101 +85 +110 +109 +87 +102 +113 +101 +91 +111 +106 +94 +101 +114 +108 +101 +98 +104 +124 +90 +108 +115 +95 +106 +108 +117 +104 +90 +113 +117 +110 +103 +102 +126 94 103 -143 -148 -188 -145 -162 -179 -141 -174 -155 -160 -185 -157 -184 -187 +118 +117 +92 +111 +123 +118 +96 +120 +117 +115 +99 +124 +120 +120 +104 +112 +116 +113 +109 +121 +117 +114 +100 +124 +128 +115 +110 +119 +118 +128 +111 +126 +131 +131 +105 +123 +119 +131 +111 +110 +118 +130 +106 +109 +120 +134 +125 +120 +126 +142 +126 +105 +99 +142 +134 +142 +134 +116 +147 +118 +142 +119 +107 153 -163 +146 +143 +124 +132 +141 +140 +125 +121 +135 +145 +170 +123 +108 +146 +171 +127 +148 +133 +135 +150 +136 +155 +158 +140 +149 +153 +132 +114 +104 +130 +181 +199 +179 +168 +154 +179 +185 +192 +193 +158 +164 +195 +210 +174 +184 +147 +150 +208 +172 183 +187 +197 +185 +168 +222 +180 +167 +174 +162 +157 +186 +193 +185 +189 +142 +198 +216 +198 +168 +175 +150 +174 +158 +180 +185 +185 +197 +147 +173 +197 +204 +206 +182 +161 +177 +169 +156 +253 +195 +206 +158 +164 +213 +210 +178 +179 +209 +187 +176 +228 +184 +194 +210 +149 +171 +204 +224 +209 +191 +170 +202 +155 +202 +212 +229 +193 +179 +175 +199 +226 +181 +251 +164 +177 +180 +202 +220 +233 +194 +170 +163 +187 +179 +231 +237 +169 +164 +146 +223 +190 +211 +218 +166 +151 +235 +185 +191 +204 +199 +229 +149 +188 +168 +169 +205 +196 +231 +156 +193 +197 +196 +159 +169 +202 +164 +198 +188 +299 +179 +183 +188 +165 +175 +303 +228 +193 +191 +201 +179 +269 +160 +197 +215 +199 +204 +171 +242 +202 +213 +248 +158 +182 +197 +195 +231 +261 +193 +205 +252 +149 +286 +209 +212 +255 +261 +186 +208 +191 +260 +213 +237 +269 +191 +144 +171 +215 +214 +255 +273 +225 +244 +160 +249 +181 +217 +249 +291 +235 +283 +151 +256 +184 +244 +283 +197 +270 +276 +178 +220 +198 +267 +214 +257 +259 +212 +200 +153 +235 +294 +225 +211 +300 +218 +222 +199 +178 +197 +236 +237 +315 +178 +322 +302 +185 +211 +193 +316 +213 +252 +302 +231 +263 +227 +217 +205 +278 +316 +222 +325 +221 +259 +252 +182 +214 +250 +331 +256 +317 +243 +244 +273 +200 +220 +289 +331 +261 +343 +277 +306 +215 +183 +286 +195 +267 +276 +318 +276 +323 +264 +208 +223 +194 +267 +346 +234 +350 +255 +251 +308 +205 +253 +236 +232 +270 +345 +257 +346 +247 +259 +181 +209 +246 +286 +353 +287 +338 +260 +340 +216 +193 +307 +226 +267 +362 +255 +329 +247 +317 +288 +173 +267 +218 +263 +302 +344 +275 +349 +249 +272 +177 +250 +256 +329 +240 +416 +246 +359 +252 +301 +210 +255 +182 +328 +274 +323 +336 +321 +271 +352 +195 +252 +199 +312 +269 +318 +373 +341 +199 +249 +293 +177 +245 +226 +400 +240 +372 +261 +300 +403 +356 +210 +226 +242 +352 +313 +385 +319 +366 +380 +252 +322 +195 +310 +201 +414 +260 +406 +289 +363 +243 +367 +224 +180 +373 +244 +298 +367 +254 +429 +259 +358 +266 +226 +234 +233 +285 +311 +282 +321 +232 +376 +237 +230 +187 +341 +239 +411 +258 +381 +308 +352 +267 +370 +230 +226 +309 +231 +310 +410 +382 +272 +356 +324 +358 +239 +238 +271 +258 +368 +289 +354 +387 +356 +275 +386 +213 +233 +297 +250 +263 +424 +294 +395 +312 +392 +348 +312 +179 +407 +261 +402 +238 +328 +425 +359 +408 +401 +280 +131 +1603 +334 +271 +300 +392 +277 +371 +273 +347 +328 +305 +355 +352 +214 +268 +406 +365 +392 +335 +430 +398 +275 +255 +428 +297 +265 +331 +393 +352 +411 +382 +266 +399 +231 +406 +250 +214 +350 +268 +495 +266 +380 +260 +386 +347 +305 +279 +424 +233 +498 +285 +402 +283 +420 +279 +355 +397 +312 +235 +672 +269 +364 +305 +386 +280 +367 +274 +435 +283 +422 +272 +375 +258 +292 +347 +403 +368 +370 +304 +336 +362 +388 +247 +464 +414 +316 +288 +459 +357 +451 +387 +304 +384 +287 +394 +246 +421 +281 +236 +514 +452 +272 +434 +289 +416 +291 +403 +307 +369 +296 +465 +259 +499 +362 +452 +306 +451 +368 +353 +399 +375 +419 +412 +219 +376 +516 +437 +278 +450 +292 +431 +407 +395 +398 +455 +468 +222 +433 +375 +517 +374 +407 +404 +301 +441 +280 +269 +296 +424 +284 +406 +294 +402 +272 +441 +285 +335 +438 +460 +219 +368 +208 +662 +297 +385 +304 +457 +307 +466 +319 +426 +298 +452 +352 +277 +473 +317 +403 +270 +578 +371 +449 +441 +294 +267 +441 +374 +292 +392 +288 +402 +303 +445 +360 +347 +361 +385 +484 +333 +283 +412 +422 +368 +513 +445 +264 +482 +317 +499 +296 +417 +357 +371 +366 +420 +402 +306 +448 +356 +352 +368 +414 +249 +387 +294 +260 +383 +446 +402 +338 +394 +346 +425 +294 +234 +286 +288 +414 +373 +354 +349 +427 +407 +246 +493 +254 +509 +326 +290 +295 +422 +327 +471 +428 +240 +454 +422 +340 +336 +418 +263 +476 +374 +475 +429 +238 +403 +453 +367 +360 +329 +330 +450 +263 +546 +360 +392 +470 +386 +555 +428 +303 +349 +384 +481 +334 +356 +465 +429 +428 +340 +453 +431 +467 +459 +430 +304 +508 +425 +309 +300 +488 +294 +533 +499 +389 +499 +274 +403 +293 +402 +389 +307 +443 +426 +486 +348 +479 +475 +376 +496 +358 +340 +378 +516 +347 +373 +504 +459 +366 +408 +337 +506 +430 +454 +357 +448 +517 +354 +364 +422 +370 +530 +513 +285 +500 +314 +629 +394 +470 +335 +342 +522 +251 +595 +477 +439 +506 +449 +423 +497 +373 +506 +450 +310 +488 +347 +250 +373 +489 +500 +290 +481 +345 +454 +489 +418 +471 +313 +455 +331 +324 +506 +387 +530 +339 +519 +489 +260 +566 +318 +514 +280 +488 +342 +307 +394 +478 +438 +429 +539 +485 +341 +463 +524 +275 +497 +363 +368 +302 +504 +357 +675 +475 +486 +412 +501 +333 +444 +340 +448 +497 +269 +556 +378 +477 +533 +337 +523 +484 +416 +508 +493 +301 +466 +320 +362 +368 +462 +406 +550 +529 +252 +743 +508 +300 +482 +287 +574 +455 +305 +477 +360 +440 +525 +447 +470 +367 +517 +504 +315 +363 +467 +476 +329 +312 +531 +362 +561 +497 +364 +500 +419 +542 +440 +390 +468 +523 +370 +494 +335 +495 +447 +339 +497 +398 +524 +468 +323 +509 +509 +378 +489 +329 +326 +381 +445 +505 +336 +515 +499 +420 +467 +394 +363 +408 +352 +338 +310 +602 +469 +403 +459 +382 +462 +516 +296 +473 +321 +454 +416 +371 +294 +518 +467 +360 +497 +452 +352 +464 +296 +512 +330 +434 +408 +312 +473 +333 +515 +367 +477 +435 +320 +530 +404 +466 +445 +299 +614 +343 +316 +459 +335 +532 +349 +526 +464 +442 +640 +489 +456 +536 +398 +464 +375 +497 +448 +531 +432 +490 +469 +327 +569 +341 +658 +323 +486 +345 +412 +466 +473 +388 +524 +443 +377 +551 +467 +421 +542 +283 +448 +532 +354 +496 +441 +521 +459 +501 +468 +499 +336 +618 +432 +340 +449 +380 +338 +531 +303 +448 +295 +475 +297 +399 +418 +479 +352 +351 +453 +320 +295 +333 +433 +361 +492 +459 +314 +433 +277 +519 +315 +436 +375 +313 +396 +301 +417 +291 +395 +343 +446 +355 +465 +339 +411 +369 +304 +397 +319 +472 +399 +447 +346 +400 +455 +389 +366 +410 +418 +346 +306 +629 +461 +412 +466 +391 +452 +500 +358 +491 +371 +444 +489 +317 +498 +533 +321 +457 +396 +518 +461 +304 +433 +404 +552 +315 +523 +602 +276 +513 +492 +432 +523 +531 +335 +423 +382 +498 +479 +316 +477 +390 +401 +334 +497 +433 +472 +529 +453 +565 +607 +558 +456 +515 +594 +351 +524 +540 +302 +552 +481 +369 +482 +483 +527 +576 +479 +549 +475 +614 +345 +465 +495 +403 +427 +431 +571 +587 +385 +524 +578 +364 +638 +526 +367 +626 +358 +566 +554 +341 +484 +528 +496 +575 +652 +490 +546 +582 +571 +453 +569 +472 +420 +564 +542 +358 +511 +441 +624 +556 +468 +441 +563 +510 +340 +642 +462 +407 +543 +459 +385 +299 +538 +473 +384 +525 +535 +354 +522 +509 +377 +533 +358 +519 +524 +346 +378 +525 +467 +571 +380 +334 +477 +971 +290 +468 +346 +579 +413 +342 +391 +354 +626 +502 +425 +479 +433 +503 +615 +451 +569 +450 +536 +556 +568 +452 +419 +612 +475 +528 +675 +447 +533 +614 +510 +446 +593 +555 +418 +573 +534 +443 +392 +569 +432 +599 +495 +518 +588 +519 +504 +570 +534 +500 +395 +476 +490 +397 +343 +532 +594 +459 +552 +519 +564 +365 +563 +537 +338 +567 +373 +615 +567 +266 +731 +493 +363 +518 +514 +484 +569 +522 +332 +590 +399 +408 +490 +359 +365 +289 +636 +450 +428 +514 +426 +505 +450 +372 +442 +427 +433 +426 +335 +322 +385 +560 +396 +367 +443 +386 +462 +428 +331 +291 +337 +417 +316 +512 +478 +379 +448 +308 +450 +386 +504 +405 +313 +464 +348 +385 +471 +391 +397 +373 +514 +401 +306 +456 +377 +407 +382 +300 +382 +443 +418 +306 +441 +389 +443 +397 +359 +368 +318 +489 +311 +338 +403 +496 +443 +341 +584 +440 +435 +549 +348 +439 +516 +354 +340 +320 +537 +386 +443 +505 +394 +467 +507 +314 +506 +314 +468 +526 +283 +438 +320 +431 +418 +458 +408 +263 +407 +321 +323 +319 +360 +286 +474 +317 +468 +347 +536 +456 +284 +447 +363 +377 +464 +456 +264 +429 +470 +359 +530 +423 +261 +493 +313 +390 +302 +459 +354 +359 +524 +384 +382 +294 +479 +379 +591 +407 +358 +298 +307 +377 +309 +459 +410 +470 +424 +273 +377 +431 +417 +384 +287 +376 +398 +320 +433 +383 +311 +436 +403 +454 +445 +304 +446 +273 +464 +343 +346 +350 +544 +444 +359 +463 +317 +316 +860 +373 +523 +295 +537 +365 +309 +435 +319 +553 +419 +491 +479 +327 +449 +445 +339 +344 +558 +279 +361 +474 +311 +486 +464 +395 +505 +349 +437 +505 +306 +476 +343 +392 +481 +275 +433 +409 +446 +338 +509 +452 +288 +275 +496 +399 +300 +457 +417 +457 +427 +288 +456 +320 +470 +428 +431 +424 +305 +429 +331 +486 +486 +364 +437 +374 +536 +452 +298 +460 +390 +312 +295 +516 +431 +392 +503 +504 +408 +449 +290 +385 +308 +532 +258 +570 +469 +357 +422 +426 +462 +486 +328 +473 +362 +470 +420 +245 +534 +335 +438 +433 +525 +446 +326 +553 +494 +375 +284 +428 +303 +336 +455 +329 +522 +453 +315 +524 +346 +513 +465 +261 +492 +326 +372 +340 +402 +489 +457 +491 +256 +860 +547 +362 +487 +294 +511 +417 +353 +604 +381 +465 +416 +333 +503 +389 +481 +413 +335 +504 +377 +335 +302 +461 +381 +377 +470 +418 +558 +455 +413 +521 +337 +384 +499 +200 +2538 +415 +407 +504 +312 +510 +493 +418 +494 +346 +577 +470 +283 +464 +477 +395 +507 +398 +516 +451 +315 +507 +419 +344 +481 +355 +323 +385 +488 +426 +501 +469 +554 +454 +540 +454 +523 +527 +364 +529 +528 +298 +599 +479 +333 +412 +381 +485 +438 +474 +473 +354 +485 +475 +303 +415 +360 +487 +475 +306 +376 +330 +478 +346 +483 +417 +276 +629 +339 +540 +444 +421 +516 +356 +658 +521 +354 +485 +492 +336 +426 +368 +401 +469 +427 +511 +493 +409 +462 +426 +479 +455 +312 +433 +336 +450 +315 +487 +421 +354 +475 +435 +415 +418 +330 +471 +265 +558 +329 +282 +382 +446 +420 +299 +494 +407 +457 +418 +315 +326 +322 +412 +281 +479 +294 +472 +386 +459 +403 +281 +496 +348 +324 +302 +423 +301 +478 +417 +316 +437 +342 +496 +406 +492 +461 +322 +494 +479 +269 +470 +430 +444 +401 +353 +689 +353 +459 +439 +345 +412 +385 +328 +270 +476 +303 +502 +353 +555 +473 +297 +469 +389 +477 +406 +227 +397 +277 +443 +335 +405 +303 +411 +281 +320 +330 +415 +246 +361 +293 +386 +298 +370 +298 +426 +285 +367 +287 +465 +216 +433 +308 +355 +260 +381 +319 +416 +322 +224 +419 +258 +349 +325 +363 +377 +358 +346 +285 +276 +336 +245 +289 +272 +347 +265 +346 +314 +279 +243 +288 +266 +245 +293 +368 +297 +318 +222 +326 +255 +286 +275 +251 +265 +296 +334 +335 +254 +318 +207 +307 +215 +273 +277 +353 +234 +329 +214 +251 +190 +260 +199 +275 +295 +223 +263 +276 +204 +240 +229 +239 +205 +344 +253 +245 +302 +200 +206 +222 +267 +278 +282 +189 +215 +277 +255 +247 +222 +256 +248 +302 +286 +283 +303 +205 +254 +169 +315 +221 +283 +213 +204 +263 +200 +181 +203 +227 +261 +261 +269 +303 +230 +266 +231 +240 +251 +330 +218 +266 +263 +180 +245 +189 +404 +267 +325 +214 +287 +320 +217 +296 +201 +247 +285 +222 +240 +259 +225 +179 +279 +228 +208 +239 +278 +284 +255 +252 +214 +198 +242 +333 +222 +278 +192 +498 +232 +224 +215 +279 +257 +306 +208 +269 +256 +242 +233 +166 +270 +236 +225 +272 +306 +218 +205 +270 +229 +219 +327 +218 +223 +279 +215 +229 +221 +243 +220 +234 +241 +233 +203 +238 +297 +152 +252 +243 +320 +184 +204 +265 +171 +245 +164 +258 +282 +235 +216 +272 +211 +228 +199 +265 +208 +218 +262 +277 +195 +162 +208 +220 +235 +183 +216 +267 +279 +170 +217 +173 +259 +161 +234 +218 +249 +245 +206 +189 +219 +279 +195 +203 +210 +270 +202 +150 +298 +259 +248 +199 +248 +233 +197 +180 +249 +287 +183 +207 +261 +231 +209 +173 +231 +297 +187 +206 +244 +205 +232 +153 +216 +281 +233 +195 +260 +262 +209 +170 +242 +245 +196 +158 +183 +216 +223 +148 +274 +173 +232 +194 +260 +186 +205 +170 +186 +203 +218 +236 +158 +193 +154 +196 +195 +178 +243 +270 +164 +189 +157 +193 +174 +310 +215 +188 +170 +126 +194 +181 +204 +239 +226 +221 +138 +164 +200 +182 +283 +246 +204 +169 +157 +179 +202 +266 +187 +191 +185 +174 +148 +149 +193 +216 +227 +229 +191 +126 +209 +202 +173 +290 +238 +174 +177 +187 +129 +186 +175 +189 +204 +241 +142 +158 +254 +189 +199 +176 +248 +162 +169 +173 +236 +186 +205 +226 +209 +171 +140 +256 +169 +180 +150 +210 +116 diff --git a/scenes/test.rt b/scenes/test.rt index 02fe112..d919a93 100644 --- a/scenes/test.rt +++ b/scenes/test.rt @@ -1,4 +1,4 @@ -CAM -1 40 40 0 -90 0 1 90 5 +CAM -1 40 19 0 -90 0 1 90 5 MAT 255 255 255 0.0 1. 1. // white 0 diff --git a/shaders/compute.glsl b/shaders/compute.glsl index 5014ee7..6b77014 100644 --- a/shaders/compute.glsl +++ b/shaders/compute.glsl @@ -123,6 +123,7 @@ struct Ray { vec3 origin; vec3 direction; + vec3 inv_direction; }; struct hitInfo @@ -211,7 +212,7 @@ Ray initRay(vec2 uv, inout uint rng_state) origin += right * lens_point.x + up * lens_point.y; ray_direction = normalize(focal_point - origin); - return (Ray(origin, ray_direction)); + return (Ray(origin, ray_direction, 1.0 / ray_direction)); } void main() diff --git a/shaders/debug.glsl b/shaders/debug.glsl index ff7ccc6..bfec4c9 100644 --- a/shaders/debug.glsl +++ b/shaders/debug.glsl @@ -207,7 +207,7 @@ Ray initRay(vec2 uv) vec3 view_space_ray = normalize(vec3(uv.x, uv.y, -focal_length)); vec3 ray_direction = normalize((inverse(camera.view_matrix) * vec4(view_space_ray, 0.0)).xyz); - return (Ray(origin, ray_direction)); + return (Ray(origin, ray_direction, (1.0 / ray_direction))); } vec3 debugColor(vec2 uv) diff --git a/shaders/intersect.glsl b/shaders/intersect.glsl index 14a919d..dd2a940 100644 --- a/shaders/intersect.glsl +++ b/shaders/intersect.glsl @@ -227,18 +227,18 @@ bool intersect(Ray ray, GPUObject obj, out hitInfo hit) bool intersectRayBVH(Ray ray, GPUBvh node, inout hitInfo hit) { - vec3 invDir = 1.0 / ray.direction; - - vec3 t1 = (node.min - ray.origin) * invDir; - vec3 t2 = (node.max - ray.origin) * invDir; + // vec3 inv_direction = 1.0 / ray.direction; + + vec3 t1 = (node.min - ray.origin) * ray.inv_direction; + vec3 t2 = (node.max - ray.origin) * ray.inv_direction; vec3 tMin = min(t1, t2); vec3 tMax = max(t1, t2); hit.t = max(max(tMin.x, tMin.y), tMin.z); - hit.last_t = min(min(tMax.x, tMax.y), tMax.z); + float last_t = min(min(tMax.x, tMax.y), tMax.z); - return hit.t <= hit.last_t && hit.last_t >= 0.0; + return (hit.t <= last_t && last_t >= 0.0); } diff --git a/shaders/light.glsl b/shaders/light.glsl index cfd7061..1d19165 100644 --- a/shaders/light.glsl +++ b/shaders/light.glsl @@ -34,7 +34,7 @@ vec3 sampleSphereLight(vec3 position, GPUObject obj, int light_index, GPUMateria vec3 light_dir = normalize(sample_point - position); float light_dist = length(sample_point - position); - Ray shadow_ray = Ray(position + light_dir * 0.001, light_dir); + Ray shadow_ray = Ray(position + light_dir * 0.001, light_dir, (1.0 / light_dir)); hitInfo shadow_hit = traceRay(shadow_ray); if (shadow_hit.obj_index != light_index) @@ -53,7 +53,7 @@ vec3 sampleQuadLight(vec3 position, GPUObject obj, int light_index, GPUMaterial vec3 light_dir = normalize(sample_point - position); float light_dist = length(sample_point - position); - Ray shadow_ray = Ray(position + light_dir * 0.001, light_dir); + Ray shadow_ray = Ray(position + light_dir * 0.001, light_dir, (1.0 / light_dir)); hitInfo shadow_hit = traceRay(shadow_ray); if (shadow_hit.obj_index != light_index) @@ -82,7 +82,7 @@ vec3 sampleLights(vec3 position, inout uint rng_state) vec3 light_dir = normalize(obj.position - position); float light_dist = length(obj.position - position); - Ray shadow_ray = Ray(position + light_dir * 0.01, light_dir); + Ray shadow_ray = Ray(position + light_dir * 0.01, light_dir, (1.0 / light_dir)); hitInfo shadow_hit = traceRay(shadow_ray); if (shadow_hit.obj_index == light_index) diff --git a/shaders/trace.glsl b/shaders/trace.glsl index 650ea31..147ad1c 100644 --- a/shaders/trace.glsl +++ b/shaders/trace.glsl @@ -64,7 +64,7 @@ hitInfo traceBVH(Ray ray) int stack[32]; int stack_ptr = 0; stack[0] = 0; - + while (stack_ptr >= 0) { int current_index = stack[stack_ptr--]; diff --git a/srcs/RT.cpp b/srcs/RT.cpp index 3d4f7b9..5dcd34d 100644 --- a/srcs/RT.cpp +++ b/srcs/RT.cpp @@ -128,8 +128,8 @@ int main(int argc, char **argv) recorded_fps.push_back((int)window.getFps()); - float y_offset = 0; - float dist_to_obj = 2; + float y_offset = 35; + float dist_to_obj = 55; float speed = 0.5; camera->setPosition(glm::vec3(